Mam odpowiedź, która ma tablicę, ale w ciągu, muszę przeanalizować to za pomocą GSON.

Po pierwsze, muszę utworzyć tablicę json w następujący sposób:

val data = JSONArray(response)

Następnie używam GSON do analizowania.

Moja odpowiedź jest następująca:

[{"Response":"true","ServerMsg":"[{\"Type\":\"Settled\",\"Items\":\"[{\\\"ID\\\":\\\" 1\\\",\\\"Date\\\":\\\" 14 May 18\\\",\\\"Amount\\\":\\\" 1458 USD\\\",\\\"ReferenceID\\\":\\\" ECR18-25-0002\\\"}]\",\"Amount\":1458},{\"Type\":\"Open\",\"Items\":\"[]\",\"Amount\":0}]","ErrorID":"OK","ErrorMsg":null}]

Próbowałem użyć TypeToken

val gson = Gson()
  val listTyle = object : TypeToken<List<Loandata>>() {}.type
  loanList = gson.fromJson<List<Loandata>>(response, listTyle) as ArrayList<Loandata>?

Ale to nie zadziałało, czy ktoś może zasugerować, jak mogę przeanalizować ciąg bezpośrednio w mojej klasie POJO przy użyciu gson bez tworzenia tablicy jsonarray.

0
Siddhesh Pawar 19 grudzień 2019, 12:55

2 odpowiedzi

Możesz użyć http://www.jsonschema2pojo.org/ przekonwertować ciąg na GSON

1
nour eldien 19 grudzień 2019, 13:18

Nie powinien zawierać // znaków. Przed przekazaniem do GSON usuń wszystkie // z odpowiedzi json, a następnie przekaż do funkcji GSON.
Twój JSON powinien wyglądać tak.

[{
    "Response": "true",
    "ServerMsg": [{
        "Type": "Settled",
        "Items ": [{
            "ID": " 1",
            "Date": " 14 May 18",
            "Amount": " 1458 USD",
            "ReferenceID": " ECR18-25-0002"
        }],
        "Amount ": 1458
    }, {
        "Type ": "Open ",
        "Items ": " []",
        "Amount ": 0
    }],
    "ErrorID": "OK",
    "ErrorMsg": null
}]
0
jarvis 19 grudzień 2019, 13:21