JAVA JSONObject在Arrays中添加一个新元素(JSONArray)

时间:2016-01-18 12:14:15

标签: 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.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

1 个答案:

答案 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