我从一个看起来像这样的Web服务调用中获取JSON:
{
results :
{
seg: {
segName: whatever,
segType: atest,
var: [
{field1: value1,
field2: value2,
field3: value3},
{field1: value4,
field2: value5,
field3: value6}
]
}
}
}
我在Java中使用net.sf.json包。我从这个结果创建了一个JSON对象。
我想手动将另一个条目(JSONObject)添加到数组“var”。
除了将对象一直解构为JSONArray“var”,然后重建它之外,有没有办法在var中插入另一个条目?
我尝试了accumulate(“var”,new JSONObject(...));但是这个新对象在“结果”部分中与“seg”处于同一级别。
答案 0 :(得分:2)
您必须在要插入新对象的级别调用accumulate。
如果向下钻取到“seg”级别并在那里累积新对象,则会将新条目添加到“var”数组中。
e.g。
String json = // your input JSON string here
JSONObject obj = new JSONObject(json);
obj.getJSONObject("results")
.getJSONObject("seg")
.accumulate("var", new JSONObject("{field1 : value7, field2: value8, field3: value9}"));
System.out.println(obj);
给出
{"results":{"seg":{"var":[{"field3":"value3","field2":"value2","field1":"value1"},{"field3":"value6","field2":"value5","field1":"value4"},{"field3":"value9","field2":"value8","field1":"value7"}],"segType":"atest","segName":"whatever"}}}