【问题标题】:Parsing string using GSON使用 GSON 解析字符串
【发布时间】:2020-04-11 21:37:06
【问题描述】:

我有一个响应,它有数组但在字符串中,我需要使用 GSON 解析它。

首先,我需要像这样创建一个 json 数组:

val data = JSONArray(response)

然后我使用 GSON 进行解析。

我的回复如下:

[{"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}]

我尝试使用 TypeToken

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

但这不起作用,任何人都可以建议我如何使用 gson 直接在我的 POJO 类中解析字符串而不创建 jsonarray。

【问题讨论】:

    标签: android json gson retrofit typetoken


    【解决方案1】:

    它不应包含 // 字符。在传递给 GSON 之前,从您的 json 响应中删除所有 //,然后传递给 GSON 函数。
    你的 JSON 应该是这样的。

    [{
        "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
    }]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多