2015-01-07 115 views
1

如何在JSON对象中添加多个具有相同名称的JSON数组?在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

+1

我想你想要的不是一个有效的JSON对象。 – Thierry

+0

为什么你会用相同的名字创建数组? –

回答

3

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

+0

感谢您的提示。 – king5201

0

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

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

如果条目可以有不同的名称,你应该做一些事情,比如将指定的数组包装在一个对象中。这意味着包含一个对象的JSON数组,以及包含具有名称和JSON数组的另一个对象的对象。

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

我会避免用相同的价值不仅仅是JSON标准的原因,同时也为事实,它会给你很多JSON解析器意外和可能的结果不一致多个密钥。不要只将JSON对象想象成JSON,而是将其视为编程语言中的数据。

声明:我从来没有尝试过使用2D JSON数组。

相关问题