我有一个从包含重复键的数据库中获取的 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 中
JSONObject jsonObject = new JSONObject();
jsonObject.accumulate("a", "b");
jsonObject.accumulate("c", "d");
jsonObject.accumulate("c", "e");
jsonObject.accumulate("f", "g");
System.out.println(jsonObject);
输出:
{
"a":"b",
"c":["d","e"],
"f":"g"
}
关于java - 将具有重复键的 JSON 对象转换为 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24416960/