簡體   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