我需要在JSONArray中添加一个元素,但方法“append”会创建多个元素 数组代替添加一个元素。
最简单的方法是什么?
我使用JUnit创建了以下示例代码,仅用于隔离我的问题。
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
答案 0 :(得分:0)
在阅读了很多关于jettison问题的评论后,我决定将Jettison JSONObject库更改为org.json。
自:
<dependency>
<groupId>org.codehaus.jettison</groupId>
<artifactId>jettison</artifactId>
<version>1.3.4</version>
</dependency>
要:
<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