Как мне преобразовать строку JSON в два списка.
listA
может получить ключ.
ex. listA[0] //"W3" , listA[1] //"T1G"
listB
может получить значение.
ex. listB[0] //[{"key":"W3H","ior": "2.150","ratio": "+1","sw": "Y"},{"key":"W3C","ior": "2.840","ratio": "-1","sw": "Y"}] .
Моя строка JSON похожа на
{
"RatioData": [
{
"W3": {
"W3H": {
"ior": "2.150",
"ratio": "+1"
},
"W3C": {
"ior": "2.840",
"ratio": "-1"
},
"W3N": {
"ior": "3.300",
"ratio": "+1"
},
"sw": "Y"
},
"T1G": {
"T1G6": {
"ior": "11.500"
},
"T1G5": {
"ior": "10.500"
},
"T1G4": {
"ior": "7.900"
},
"T1G3": {
"ior": "5.200"
},
"T1G2": {
"ior": "4.350"
},
"T1G1": {
"ior": "3.100"
},
"T1GN": {
"ior": "7.900"
},
"sw": "Y"
},
"RC": {
"RCFN": {
"ior": "0"
},
"RCLH": {
"ior": "0"
},
"RCFH": {
"ior": "0"
},
"sw": "N",
" RCLC": {
"ior": "0"
},
" RCFC": {
"ior": "0"
}
},
"HM": {
"HMH": {
"ior": "5.6"
},
"HMN": {
"ior": "2.01"
},
"HMC": {
"ior": "2.35"
},
"sw": "Y"
},
"HR": {
"HRH": {
"ior": "1.03",
"ratio": "0 / 0.5"
},
"sw": "Y",
"HRC": {
"ior": "0.85",
"ratio": "0 / 0.5"
}
},
"HOU": {
"HOUH": {
"ior": "1.08",
"ratio": "0.5 / 1"
},
"HOUC": {
"ior": "0.8",
"ratio": "0.5 / 1"
},
"sw": "Y"
}
}
]
}
Я уже пробовал это, но результат не тот, который я хочу.
val type = object : TypeToken<MutableMap<String, Any>>(){}.type
var mapList:MutableList<MutableMap<String,Any>> = mutableListOf()
rationDataList.forEach { rationDataList ->
mapList.add(Gson().fromJson(Gson().toJson(rationDataList),type))
}