我希望能够将任意深度的JSON字符串(JSONObject
)转换为映射,也可以反向转换。例如:
{
"keyA": "valueA",
"keyB": {
"keyC": "vaueC",
"keyD": {
"keyE": "valueE",
"keyF": "valueF"
},
"keyG": [
{
"keyH": {
"keyI:": "valueE"
}
},
{
"keyJ": "valueJ"
},
{
"keyK" : [
"valueL",
"valueM"
]
}
]
}
}
此Json-String具有8个值:A,C,E,F,E,J,L和M。对于这些值中的每一个,我都希望在地图中创建一个条目(例如,HasMap),并带有以下路径:值作为键,值作为值。生成的地图如下所示:
keyA:valueA
keyB.keyC:valueC
keyB.keyD.keyE:valueE
keyB.keyD.keyF:valueF
keyB.keyG[keyH].keyI:valueE
keyB.keyG[keyJ]:valueJ
keyB.keyG[keyK]:[valueJ,valueM]
我一直试图涵盖各种情况。包括可能包含JSONArrays
的{{1}}。如果JSONObjects
A中包含JSONObject
B,则密钥中的字符串应为JSONObject
。在JSONArrays中导航时,所需的键在方括号中指定。
由于Json字符串可以嵌套在任何深度,所以我认为我必须递归地解决它。但是,我仍然不确定该如何处理。
我只使用JSONObject和JSONArray类及其方法。