簡體   English   中英

將新條目添加到具有dup鍵的json文件中

[英]Add new entry to the json file which has dup key

data.json,請注意dup關鍵城市

{
  "type": "1",
  "city": [
  {

  "name": "c1",
  "dis": [
    {
      "dis_name": "d1"
    },
    {
      "dis_name": "d2"
    }
  ]
 }
],

"city": [
 {
  "name": "c2",
  "dis": [
    {
      "dis_name": "d3"
    },
    {
      "dis_name": "d2"
    }
  ]
 }
 ]
}

我認為,由於存在dup鍵,因此從文件構建的JSON對象不正確或具有部分數據。

JSONObject obj = new JSONObject(readJSONFromAsset());

從stackoverflow復制的readJSONFromAsset(),

public String readJSONFromAsset() {
    String json = null;
    try {
        InputStream is = getAssets().open("data.json");
        int size = is.available();
        byte[] buffer = new byte[size];
        is.read(buffer);
        is.close();
        json = new String(buffer, "UTF-8");
    } catch (Exception ex) {
        ex.printStackTrace();
        return null;
    }
    return json;
}

在obj中,我僅看到json文件的部分數據。 在json文件/對象中添加以下新條目的最佳方法是什么?

"city": [
{
 "name": "c3",
  "dis": [
 {
  "dis_name": "d5"
 },
 {
  "dis_name": "d2"
 }
 ]
}
]

這不是有效的json文檔。 有效的json不能有重復的密鑰。 當您嘗試將其視為JSON時會發生什么情況取決於您的反序列化器選擇如何實現它-它可能會引發異常,保留第一個或保留最后一個作為常見選擇。

唯一有效的答案是修復您的數據,以便它是有效的json文檔。 我建議將城市變成一個數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM