JAVA JSONObject在数组中添加新元素(JSONArray)
我需要在JSONArray中添加一个元素,但是“append”方法会创建多个元素 数组改为添加一个元素 最简单的方法是什么 我使用JUnit创建了以下示例代码,只是为了隔离我的问题JAVA JSONObject在数组中添加新元素(JSONArray),java,arrays,json,Java,Arrays,Json,我需要在JSONArray中添加一个元素,但是“append”方法会创建多个元素 数组改为添加一个元素 最简单的方法是什么 我使用JUnit创建了以下示例代码,只是为了隔离我的问题 import org.codehaus.jettison.json.JSONArray; import org.codehaus.jettison.json.JSONException; import org.codehaus.jettison.json.JSONObject; import org.junit.Be
import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import org.junit.Before;
import org.junit.Test;
public class JettisonJSONOperations {
JSONObject jsonObject = new JSONObject();
@Before
public void preCreateJsonObject (){
try {
jsonObject.put("groupName","administrators");
JSONArray members = new JSONArray();
members.put("edward");
members.put("richard");
members.put("john");
jsonObject.put("members", members);
} catch (JSONException e) {
e.printStackTrace();
}
System.out.println(jsonObject.toString());
}
@Test
public void addingElementToJSONArray (){
try {
jsonObject.append("members", "batman");
} catch (JSONException e) {
e.printStackTrace();
}
System.out.println(jsonObject.toString());
}
}
输出:
{"groupName":"administrators","members":["edward","richard","john"]}
{"groupName":"administrators","members":[["edward","richard","john"],"batman"]}
Process finished with exit code 0
在阅读了大量关于抛弃问题的评论之后,我决定将抛弃JSONObject库更改为org.json 发件人: 输出:
{"groupName":"administrators","members":["edward","richard","john"]}
{"groupName":"administrators","members":["edward","richard","john","batman"]}
Process finished with exit code 0
而不是
jsonObject。附加(“成员”、“蝙蝠侠”)代码>它应该是jsonObject。getJSONArray(“成员”).put(“蝙蝠侠”)代码>您正在附加到JSONObject;)啊好。。我还需要一步。。这很有效,谢谢@pyerwin!然而,在我的具体案例中,我发现了一些关于抛弃的问题,比如使用Camel和CXF的JsonProvider,所以我决定将其从org.json更改为Jackson和JSONObject。
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20131018</version>
</dependency>
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.junit.Before;
import org.junit.Test;
public class ORGJSONOperations {
JSONObject jsonObject = new JSONObject();
@Before
public void preCreateJsonObject (){
try {
jsonObject.put("groupName","administrators");
JSONArray members = new JSONArray();
members.put("edward");
members.put("richard");
members.put("john");
jsonObject.put("members", members);
} catch (JSONException e) {
e.printStackTrace();
}
System.out.println(jsonObject.toString());
}
@Test
public void addingElementToJSONArray (){
try {
jsonObject.append("members", "batman");
} catch (JSONException e) {
e.printStackTrace();
}
System.out.println(jsonObject.toString());
}
}
{"groupName":"administrators","members":["edward","richard","john"]}
{"groupName":"administrators","members":["edward","richard","john","batman"]}
Process finished with exit code 0