我有一個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