从JSON字符串到Hashmap(以路径为键),反之亦然

时间:2019-04-08 09:33:48

标签: json recursion hashmap

我希望能够将任意深度的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类及其方法。

0 个答案:

没有答案