How to hashmap a JSON's key-value pair where Value type and number of key-value pairs not known
我有一个来自DB的字符串格式的JSON,我只知道它是键值格式的。 我事先不知道
- JSON字符串中有多少对
- 价值类型。 它可以是String或Object。
以下是我的一些JSON字符串:
-
{"windowHandle":"current"} \\ in one String: String format -
{"type":"implicit","ms":100000} \\ in two String: String format -
{"id":"{a67fc38c-10e6-4c5e-87dc-dd45134db570}"} \\ in one String: String format -
{"key1": {"sub-key1":"sub-value1","sub-key2":"sub-value2"},"key2": {"sub-key2":"sub-value2"}} \\ in two String: Object format
所以,基本上:键值对的数量和值的类型(String,Object)事先是未知的。
我想将这些数据存储到我的Hashmap中。 我知道如果只能是String:String格式,我可以在Hashmap中执行以下
我的问题是,
- 如何在不重复JSON字符串的情况下有效地存储json。
-
什么应该是我的Hashmap类型,definetily不是
HashMap ?
提前致谢 !
你可以试试下面的代码。
1 2 3 4 5 6 7 8 9 10 11 12 | List<Map<String, Object>> mapdataList = new ArrayList<Map<String, Object>>(); Map<String, Object> MapObj = new HashMap<String, Object>(); MapObj.put("windowHandle","current"); MapObj.put("id","{a67fc38c-10e6-4c5e-87dc-dd45134db570}"); mapdataList.add(MapObj); Gson gson = new Gson(); JsonObject jObject = new JsonObject(); JsonParser jP = new JsonParser(); jObject.add("data", jP.parse(gson.toJson(mapdataList))); System.out.println(jObject.toString()); |
您可以使用
以下是使用
1 2 3 4 5 |
您可以在此处获取