JSONString轉List;Duplicate key

有一個字符串,需要轉爲List< Map> 的形式。但是在實際操作中出現了一些問題。

//將字符串轉爲JSONObject或JSONArray
JSONObject jo = JSONObject.fromObject(str);
JSONArray ja = jo.getJSONArray(str);

思路是將jsonstr先轉爲JSONObject或JSONArray ,然後遍歷組裝成List。
但是轉換之後,發現生成的JSONObject 中,會出現一個key對應一個數組的情況,懷疑是jsonstr中,存在重複的key值。於是將字符串複製到json工具中格式化,轉換出來發現沒有問題。
換成org.json.JSONObject 進行處理也會出現問題,報“Duplicate key”異常。

兩個工具都出現重複key值的問題,於是再次對jsonstr進行排查,發現確實是有重複的key值,但是用json工具格式化之後就沒有了。坑爹

最後,對重複的key值進行了處理,在遍歷JSONArray的時候,發現是數組則取第二個元素。

if(value.startsWith("[")){
    value = JSONArray.fromObject(value).getString(1);
}

然後再將值放入map中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章