Как добавить данные в существующий файл Json, используя Java? - PullRequest
0 голосов
/ 18 мая 2018

Это мои текущие данные Json в вызове файла Json student.json

{"name":"Mahesh","age":10}

Я хочу добавить к следующим данным, вывод должен быть таким:

{"name":"Mahesh","age":10}, {"name":"BROCK","age":3}, {"name":"Joe","age":4}

Это мой текущий код

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;  

public class JsonWritingProject
{

    public static void main(String[] args)
    {
        JSONObject main = new JSONObject();

        JsonParser jsonParser = new JsonParser();

        try
        {
            Object obj = jsonParser.parse(new FileReader("student.json"));

            JSONObject jsonObject = (JSONObject) obj;

            jsonObject.put("BROCK", 3);
            jsonObject.put("Joe", 4);
            System.out.println(jsonObject.toString());
        } catch (JsonIOException | JsonSyntaxException | FileNotFoundException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }



       } 

Не работает, что мне делать?Пожалуйста, сообщите

1 Ответ

0 голосов
/ 18 мая 2018

Обновление

О, кажется, я забыл опубликовать оригинальный файл JSON.Пожалуйста, поместите student.json с содержимым ниже: (Необходимо обернуть [ & ], чтобы сделать его массивом)

[{"name":"Mahesh","age":10}]

Поскольку вы не можете просто добавлять объекты к исходному объекту, он будетнарушая синтаксис JSON, способ сделать его правильным - поместить их в массив.

Оригинальный ответ

Вам следует перейти на использование массива для хранения нескольких объектов.И используйте FileWriter для вывода.

Пожалуйста, попробуйте этот код, он работает в моем locl env:

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

import java.io.*;

public class JsonWritingProject {

    public static void main(String[] args) {
        JSONParser jsonParser = new JSONParser();

        try {
            Object obj = jsonParser.parse(new FileReader("D:\\student.json"));
            JSONArray jsonArray = (JSONArray)obj;

            System.out.println(jsonArray);

            JSONObject student1 = new JSONObject();
            student1.put("name", "BROCK");
            student1.put("age", new Integer(3));

            JSONObject student2 = new JSONObject();
            student2.put("name", "Joe");
            student2.put("age", new Integer(4));

            jsonArray.add(student1);
            jsonArray.add(student2);

            System.out.println(jsonArray);

            FileWriter file = new FileWriter("D:\\student.json");
            file.write(jsonArray.toJSONString());
            file.flush();
            file.close();

        } catch (ParseException | IOException e) {
            e.printStackTrace();
        }

    }
}

И зависимость библиотеки:

dependencies {
    compile group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1'
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...