首页 > 解决方案 > 如何将 JSON 对象写入 JAVA 中 JSON 文件中的特定位置

问题描述

我有以下 JSON 文件。我想将新的 JSON 对象写入“用户”数组

    {
  "photos": [
    {
      "id": 1,
      "name": "name1"
    },
    {
      "id": 2,
      "name": "name2"
    },
    {
      "id": 3,
      "name": "name3"
    },
    {
      "id": 4,
      "name": "name4"
    },
    {
      "id": 5,
      "name": "name5"
    }
  ],
      "users": [
        {
          "id": 1,
          "username": "username1",
          "geo": "Ukraine"
        },
        {
          "id": 2,
          "username": "username2",
          "geo": "Russia"
        },
        {
          "id": 3,
          "username": "username3",
          "geo": "Bulgaria"
        },
        {
          "id": 4,
          "username": "username4",
          "geo": "Ukraine"
        },
        {
          "id": 5,
          "username": "username5",
          "geo": "Poland"
        }
      ],
      "todos": []
    }

所以我尝试了这个。是的,我使用 JSON.simple 库来解析 JSON 和 JSON 库来获取元素:

import Entities.User;
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONTokener;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

import java.io.*;

public class Controller {
    static JSONArray users = new JSONArray();
    static String path = "C:\\Users\\rmoroz\\IdeaProjects\\Rest\\rmoroz-aut17" +
            "\\src\\main\\resources\\Server\\json-server-auth-master\\json-server-auth-master\\db.json";

    public static void main(String[] args) {
        createUser();
    }

    public static void createUser() {
        User user1 = new User(23, "username23", "Ukraine");
        JSONParser jsonParser = new JSONParser();
        Object obj = new Object();

        try {
            obj = jsonParser.parse(new FileReader(path));
        } catch (IOException | ParseException e) {
            e.printStackTrace();
        }

        org.json.simple.JSONObject jsonObject = (org.json.simple.JSONObject) obj;
        String JSON = jsonObject.toString();
        JSONObject jsonObjectBig = new JSONObject(JSON);
        JSONObject jsonObject1 = new JSONObject();
        jsonObject1.put("id", user1.getId());
        jsonObject1.put("username", user1.getUsername());
        jsonObject1.put("geo", user1.getGeo());


        try {
            PrintWriter out = new PrintWriter(new FileWriter(path, true));
            out.append();
            out.close();
        } catch (IOException e) {

        }
    }
}

我不知道应该在 append() 方法中输入什么才能将 jsonObject1 写入 JSON 文件中的“用户”数组

标签: javajson

解决方案


推荐阅读