我有一个JSON字符串,我从包含重复键的数据库中获取。我想通过将它们的值组合到一个数组中来移除重复的键。将具有重复键的JSON对象转换为JSON数组
例如
输入
{
"a":"b",
"c":"d",
"c":"e",
"f":"g"
}
输出
{
"a":"b",
"c":["d","e"],
"f":"g"
}
的实际数据是可以被嵌套在较大的文件。我不会提前知道什么或有多少对。
我需要为此使用Java。 org.json抛出一个异常,因为重复键,gson可以解析字符串,但每个重复的键都会覆盖最后一个键。我需要保留所有的数据。
如果可能的话,我想做到这一点,而无需编辑任何库代码
JSON对象不能包含具有相同键的2个项目。在你的例子json中,c的第一个外观将被覆盖。你可以通过http://jsonlint.com/ –
验证你的json来看到这一点。从技术上讲,你从数据库获得的东西不是“JSON”。您需要重新评估数据的写入方式,或者更可能需要自己为数据编写某种解析器。我想不出一个期望通过这种方式来转换数据的库。 – Tejs
根据这个问题,它是有效的,尽管解析器不允许出于显而易见的原因。我真的不在乎,如果它不是有效的JSON,只要我可以将重复值的字符串格式转换为字符串格式没有重复值http://stackoverflow.com/questions/21832701/does-json-syntax-allow-duplicate-键入对象 – adamF