Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA JSONObject在数组中添加新元素(JSONArray)_Java_Arrays_Json - Fatal编程技术网

JAVA JSONObject在数组中添加新元素(JSONArray)

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

我需要在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

在阅读了大量关于抛弃问题的评论之后,我决定将抛弃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