繁体   English   中英

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

[英]JAVA JSONObject adding a new element in Arrays (JSONArray)

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM