如何将arrayOf JSONArray的JSON转换为对象

时间:2019-08-20 22:35:53

标签: android kotlin kotlinx.serialization

我有以下JSON数组:

[
  [
    {
      "body": "Text",
      "bodyType": "Text",
      "nameType": "Text",
      "makeDisplay": "Acura"
    }
  ],
  [
    {
      "body": "text",
      "bodyType": "text",
      "nameType": "text",
      "makeDisplay": "text"
    }
  ]
]

我想将其转换为对象,但是问题是我有嵌套的数组,下面的解决方案不起作用。

private var items: List<CarModel> = emptyList()

items = Json(JsonConfiguration.Stable).parse(CarsResponse.serializer().list, "MiJSON.json ....")

@Serializable
data class CarsResponse(
    val items: List<ItemsModels> = emptyList()
)

@Serializable
data class ItemsModels(
    val items: List<CarModel> = emptyList()
)

@Serializable
data class CarModel(
    val body: String = EMPTY_STRING,
    val bodyType: String = EMPTY_STRING,
    val nameType: String = EMPTY_STRING,
    val makeDisplay: String = EMPTY_STRING
)

1 个答案:

答案 0 :(得分:0)

您需要从

更改json。
[
 [
{
  "body": "Text",
  "bodyType": "Text",
  "nameType": "Text",
  "makeDisplay": "Acura"
}
],
[
{
  "body": "text",
  "bodyType": "text",
  "nameType": "text",
  "makeDisplay": "text"
 }
 ]
 ]

        [
      {
            "body": "Text",
            "bodyType": "Text",
            "nameType": "Text",
            "makeDisplay": "Acura"
        },
        {
            "body": "text",
            "bodyType": "text",
            "nameType": "text",
            "makeDisplay": "text"
        }
    ]