在Android中的JSON对象中具有相同名称的多个JSON数组?

时间:2015-01-07 17:44:02

标签: android

如何在JSON对象中添加多个具有相同名称的JSON数组?

我试过了

JSONObject jsonObject = new JSONObject(jsonHeader);

jsonObject.put("item", jsonArray1);
jsonObject.put("item", jsonArray2);

Log.i(TAG, jsonObject.toString());

我得到了这个结果

{
  ...

  "item":{[
      jsonArray2
   ]}
}

但我希望得到的结果包含所有jsonArray

{
  ...
  "item":{[
      jsonArray1
   ]},

  "item":{[
      jsonArray2
   ]}
 }

我该怎么做?

谢谢:D

2 个答案:

答案 0 :(得分:3)

没有。你不能。不允许在JSON对象中创建具有相同名称的两个键。它不包含在JSON标准中。

答案 1 :(得分:0)

如果所有项都被称为item,则应考虑改为使用两层JSON数组。

[
   [ "A" ],
   [ "B" ],
   [ "C" ]
]

如果条目可以具有不同的名称,则应该执行诸如将命名数组包装在对象中的操作。这意味着包含对象的JSON数组,以及包含具有名称和JSON数组的另一个对象的对象。

[
    {
        "item":["A"]
    },
    {
        "item":["B"]
    },
]

我会避免使用具有相同值的多个键,这不仅仅是出于JSON标准的原因,而且还因为它会为许多JSON解析器提供意外且可能不一致的结果。不要仅仅将JSON对象视为JSON,而是将它最终作为编程语言中的数据

免责声明:之前我从未尝试过2D JSON数组。