Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.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 从JSON追加或删除数据_Java_Android_Json - Fatal编程技术网

Java 从JSON追加或删除数据

Java 从JSON追加或删除数据,java,android,json,Java,Android,Json,我想要得到的结果是: [ {"id":1,"name":"example1","description":"An example"}, {"id":2, "name":"example2","description":"Just another example"}, ... ] 为了向JSON添加新数据,我尝试了以下方法: String jsonDataString = ALL MY JSON DATA HERE; JSONObject mainObject = new JSONObject

我想要得到的结果是:

[
{"id":1,"name":"example1","description":"An example"},
{"id":2, "name":"example2","description":"Just another example"}, 
... ]
为了向JSON添加新数据,我尝试了以下方法:

String jsonDataString = ALL MY JSON DATA HERE;
JSONObject mainObject = new JSONObject(jsonDataString);
JSONObject valuesObject = new JSONObject();
JSONArray list = new JSONArray();
valuesObject.put("id", "3");
valuesObject.put("name", "example3");
valuesObject.put("description", "Yet another example");
list.put(valuesObject);
mainObject.accumulate("", list);
但是我没有得到一个正确的结果

如何删除JSON数据取决于ID的值


谢谢。

json的根对象是一个数组,因此您应该使用
JSONArray
,而不是
JSONObject

String jsonDataString = ALL MY JSON DATA HERE;
JSONArray mainObject = new JSONArray(jsonDataString);
JSONObject valuesObject = new JSONObject();
valuesObject.put("id", "3");
valuesObject.put("name", "example3");
valuesObject.put("description", "Yet another example");
mainObject.put(valuesObject);
  • 要构建新的
    JSONArray
    ,可以使用以下代码:

    try {
    
        JSONArray jsonArray = new JSONArray();
    
        // Object 1
        JSONObject jsonObject1 = new JSONObject();
        jsonObject1.put("id", 1);
        jsonObject1.put("name", "example1");
        jsonObject1.put("description", "An example");
    
        // Object 2
        JSONObject jsonObject2 = new JSONObject();
        jsonObject2.put("id", 2);
        jsonObject2.put("name", "example2");
        jsonObject2.put("description", "Just another example");
    
        // Add Object 1 & 2 JSONArray
        jsonArray.put(jsonObject1);
        jsonArray.put(jsonObject2);
    
    
        Log.d("JSON", "JSON: " + jsonArray.toString());
    
    } catch (final JSONException e) {
        Log.e("FAILED", "Json parsing error: " + e.getMessage());
    }
    
  • 输出:

    D/JSON: JSON: [{"id":1,"name":"example1","description":"An example"},{"id":2,"name":"example2","description":"Just another example"}]
    
    D/JSON: JSON: [{"id":1,"name":"example1","description":"An example"},{"id":2,"name":"example2","description":"Just another example"},{"id":3,"name":"example3","description":"Third example"}]
    
    D/JSON: JSON Before Remove: [{"id":1,"name":"example1","description":"An example"},{"id":2,"name":"example2","description":"Just another example"},{"id":3,"name":"example3","description":"Third example"}]
    
    D/JSON: JSON After Remove: [{"id":1,"name":"example1","description":"An example"},{"id":3,"name":"example3","description":"Third example"}]
    
  • 要将新的
    JSONObject
    添加到现有的
    JSONArray
    中,您可以使用以下代码:

    // Your Existing JSONArray
    // [{"id":1,"name":"example1","description":"An example"},
    //  {"id":2, "name":"example2","description":"Just another example"}]
    
    String jsonDataString = "[{\"id\":1,\"name\":\"example1\",\"description\":\"An example\"},{\"id\":2,\"name\":\"example2\",\"description\":\"Just another example\"}]";
    
    try {
    
        JSONArray jsonArray = new JSONArray(jsonDataString);
    
        // Object 3
        JSONObject jsonObject3 = new JSONObject();
        jsonObject3.put("id", 3);
        jsonObject3.put("name", "example3");
        jsonObject3.put("description", "Third example");
    
        // Add Object 3 JSONArray
        jsonArray.put(jsonObject3);
    
        Log.d("JSON", "JSON: " + jsonArray.toString());
    
    } catch (final JSONException e) {
        Log.e("FAILED", "Json parsing error: " + e.getMessage());
    }
    
    // Your Existing JSONArray
    // [{"id":1,"name":"example1","description":"An example"},
    //  {"id":2,"name":"example2","description":"Just another example"},
    //  {"id":3,"name":"example3","description":"Third example"}]  
    
    String jsonDataString = "[{\"id\":1,\"name\":\"example1\",\"description\":\"An example\"},{\"id\":2,\"name\":\"example2\",\"description\":\"Just another example\"},{\"id\":3,\"name\":\"example3\",\"description\":\"Third example\"}]";
    
    try {
    
        JSONArray jsonArray = new JSONArray(jsonDataString);
    
        Log.d("JSON", "JSON before Remove: " + jsonArray.toString());
    
        // Remove Object id = 2
        int removeId = 2;
    
        for (int i = 0; i < jsonArray.length(); i++)
        {
            JSONObject object = jsonArray.getJSONObject(i);
    
            if (object.has("id") && !object.isNull("id")) {
    
                int id = object.getInt("id");
    
                if (id == removeId)
                {
                    jsonArray.remove(i);
                    break;
                }
            }
        }
    
        Log.d("JSON", "JSON After Remove: " + jsonArray.toString());
    
    } catch (final JSONException e) {
        Log.e("FAILED", "Json parsing error: " + e.getMessage());
    }
    
  • 输出:

    D/JSON: JSON: [{"id":1,"name":"example1","description":"An example"},{"id":2,"name":"example2","description":"Just another example"}]
    
    D/JSON: JSON: [{"id":1,"name":"example1","description":"An example"},{"id":2,"name":"example2","description":"Just another example"},{"id":3,"name":"example3","description":"Third example"}]
    
    D/JSON: JSON Before Remove: [{"id":1,"name":"example1","description":"An example"},{"id":2,"name":"example2","description":"Just another example"},{"id":3,"name":"example3","description":"Third example"}]
    
    D/JSON: JSON After Remove: [{"id":1,"name":"example1","description":"An example"},{"id":3,"name":"example3","description":"Third example"}]
    
  • 要从
    JSONArray
    中删除
    JSONObject
    ,可以使用以下代码:

    // Your Existing JSONArray
    // [{"id":1,"name":"example1","description":"An example"},
    //  {"id":2, "name":"example2","description":"Just another example"}]
    
    String jsonDataString = "[{\"id\":1,\"name\":\"example1\",\"description\":\"An example\"},{\"id\":2,\"name\":\"example2\",\"description\":\"Just another example\"}]";
    
    try {
    
        JSONArray jsonArray = new JSONArray(jsonDataString);
    
        // Object 3
        JSONObject jsonObject3 = new JSONObject();
        jsonObject3.put("id", 3);
        jsonObject3.put("name", "example3");
        jsonObject3.put("description", "Third example");
    
        // Add Object 3 JSONArray
        jsonArray.put(jsonObject3);
    
        Log.d("JSON", "JSON: " + jsonArray.toString());
    
    } catch (final JSONException e) {
        Log.e("FAILED", "Json parsing error: " + e.getMessage());
    }
    
    // Your Existing JSONArray
    // [{"id":1,"name":"example1","description":"An example"},
    //  {"id":2,"name":"example2","description":"Just another example"},
    //  {"id":3,"name":"example3","description":"Third example"}]  
    
    String jsonDataString = "[{\"id\":1,\"name\":\"example1\",\"description\":\"An example\"},{\"id\":2,\"name\":\"example2\",\"description\":\"Just another example\"},{\"id\":3,\"name\":\"example3\",\"description\":\"Third example\"}]";
    
    try {
    
        JSONArray jsonArray = new JSONArray(jsonDataString);
    
        Log.d("JSON", "JSON before Remove: " + jsonArray.toString());
    
        // Remove Object id = 2
        int removeId = 2;
    
        for (int i = 0; i < jsonArray.length(); i++)
        {
            JSONObject object = jsonArray.getJSONObject(i);
    
            if (object.has("id") && !object.isNull("id")) {
    
                int id = object.getInt("id");
    
                if (id == removeId)
                {
                    jsonArray.remove(i);
                    break;
                }
            }
        }
    
        Log.d("JSON", "JSON After Remove: " + jsonArray.toString());
    
    } catch (final JSONException e) {
        Log.e("FAILED", "Json parsing error: " + e.getMessage());
    }
    

    希望这能对您有所帮助。

    谢谢,根据数组中每个数据的ID,从中删除一个JSON数据怎么样?@Jis Maxi如果我的回答有帮助,请向上投票。提前谢谢。