我有一个从包含重复密钥的数据库中获取的JSON字符串。我想通过将重复键的值组合到数组中来删除重复键。
例如
输入项
{ "a":"b", "c":"d", "c":"e", "f":"g" }
输出量
{ "a":"b", "c":["d","e"], "f":"g" }
实际数据是一个可能嵌套的大文件。我不会提前知道有多少对。
我需要为此使用Java。org.json由于重复的键而引发异常,gson可以解析该字符串,但是每个重复的键都会覆盖最后一个。我需要保留所有数据。
如果可能的话,我想不编辑任何库代码就这样做
从今天开始,org.json库版本20170516提供accumulate()了将重复的键条目存储到JSONArray
org.json
20170516
accumulate()
JSONArray
JSONObject jsonObject = new JSONObject(); jsonObject.accumulate("a", "b"); jsonObject.accumulate("c", "d"); jsonObject.accumulate("c", "e"); jsonObject.accumulate("f", "g"); System.out.println(jsonObject);
输出: