您好我正在尝试使用标题创建一个带字母的列表,所以我想要一个带有“B”键的JSONObjects数组,例如在该对象中我将添加一个包含联系人姓名的JSONObjects数组以键或“B”开头
有没有人知道如何使用密钥将JSONObject添加到JSONArray?这样我就可以检索特定的对象
答案 0 :(得分:14)
要达到您的要求,您的JSON对象应该是这样的
{
"A":[
{
"name":"aaa"
},
{
"name":"aba"
}
],
"B":[
{
"name":"bbb"
},
{
"name":"bba"
}
]
}
上面的Object的伪实现如下所示:
//Maint list object
JSONObject objMainList = new JSONObject();
//prepare item array for "A"
JSONArray arrForA = new JSONArray();
JSONObject itemA = new JSONObject();
itemA.put("name", "aaa");
arrForA.put(itemA);
//prepare item array for "B"
JSONArray arrForB = new JSONArray();
JSONObject itemB = new JSONObject();
itemB.put("name", "bbb");
arrForB.put(itemB);
//Finally add item arrays for "A" and "B" to main list with key
objMainList.put("A", arrForA);
objMainList.put("B", arrForB);
更新:检查“A”或“B”..是否存在
if(objMainList.has("A")){
}
答案 1 :(得分:2)
尝试这种方式:
{"Contacts": //JSONObject
{
"B"://JSONArray..
[
{"ContactName":sdfsdf,"ID":900,"Number":1368349},
{"ContactName":adsdfd,"ID":1900,"Number":136856},
{"ContactName":adglkhdofg,"ID":600,"Number":136845}
],
"C":[
{"ContactName":alkghoi,"ID":900,"Number":1368349},
{"ContactName":wetete,"ID":1900,"Number":136856},
{"ContactName":dfhtfh,"ID":600,"Number":136845}
]
.....//and so on..
}
}
答案 2 :(得分:0)
在我看来,你要求的是地图的功能。然后,您可以使用行为类似于Map.Entry的对象数组。 类似的东西:
[{key:a,value:<some-value>},...]
此外:为什么不将数据序列化为联系人列表并以编程方式添加“排序”行为(使用字母索引)?