当前位置: 首页 > 面试题库 >

将具有重复键的JSON对象转换为JSON数组

潘俊楚
2023-03-14
问题内容

我有一个从包含重复密钥的数据库中获取的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"  
}


 类似资料:
  • 我正在php控制器中运行一个数据库查询,并将结果返回给一个Ajax函数。下面是php代码。 下面是我在ajax中的函数: 我的问题是如何将返回的json对象转换为javascript数组。

  • 我得到一个json数组从服务器: 我想使用gson将上述json数据转换为Java

  • 问题内容: 我有一个JSON对象,我将其转换为并在此处进行一些处理。稍后,我想转换相同的缓冲区数据以转换为有效的JSON对象。 我正在研究Node V6.9.1 下面是我尝试过的代码,但是当我转换回JSON却无法打开该对象时遇到了。 所以我尝试使用检查方式打印整个对象 如果我尝试像数组一样读取它 我也尝试解析它抛出 我需要将其视为我创建的真实对象(我的意思是像上面声明的那样)。 请帮忙.. 问题答

  • 问题内容: 这很简单,但是很挣扎。帮助我。 我有一个json数据{“ abc”:“ test”,“ bed”:“ cot”,“ help”:“ me”} 我想将上面的jsonObject转换为JSON ARRAY,例如[{“ abc”:“ test”,“ bed”:“ cot”,“ help”:“ me”}] 我只得到价值观。请帮我解决这个问题。 问题答案: 直接将JsonObject即obj放入

  • 我正试图将下面的json转换成java bean,需要你的帮助 Sort.json 我的豆子看起来像 我的测试课是 我看到的错误是 请建议:

  • 我试图将JSON数组转换为具有指定键/值对的元素是对象