Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để thêm chuỗi JSON vào tệp JSON hiện có trong Java?

A Gson là một thư viện json cho Java và nó có thể được sử dụng để tạo JSON. Ở bước đầu tiên, chúng ta có thể đọc tệp JSON và phân tích cú pháp thành đối tượng Java, sau đó cần phải typecast đối tượng Java cho một JSonObject và phân tích cú pháp thành JsonArray . Sau đó, lặp lại mảng JSON này để in JsonElement . Chúng tôi có thể tạo JsonWriter lớp để ghi một giá trị được mã hóa JSON vào một luồng, một mã thông báo tại một thời điểm. Cuối cùng, một chuỗi JSON mới có thể được ghi vào tệp json hiện có.

Ví dụ

import java.io.*;
import java.util.*;
import com.google.gson.*;
import com.google.gson.stream.*;
import com.google.gson.annotations.*;
public class JSONFilewriteTest {
   public static String nameRead;
   public static void main(String[] args) {
      try {
         JsonParser parser = new JsonParser();
         Object obj = parser.parse(new FileReader("employee1.json"));
         JsonObject jsonObject = (JsonObject) obj;
         System.out.println("The values of employee1.json file:\n" + jsonObject);
         JsonArray msg = (JsonArray)jsonObject.get("emps");
         Iterator<JsonElement> iterator = msg.iterator();
         while(iterator.hasNext()) {
            nameRead = iterator.next().toString();
            System.out.println(nameRead);
         }
         Name name = new Name();
         name.setName("Vamsi");
         Gson gson = new Gson();
         String json = gson.toJson(name);

         FileWriter file = new FileWriter("employee1.json", false);
         JsonWriter jw = new JsonWriter(file);
         iterator = msg.iterator();
         Employees emps = new Employees();
         while(iterator.hasNext()) {
            emps.addEmployee(gson.fromJson(iterator.next().toString(), Name.class));
         }
         emps.addEmployee(name);
         gson.toJson(emps, Employees.class, jw);
         file.close();
         System.out.println("data added to an existing employee1.json file successfully");
      } catch(Exception e) {
         e.printStackTrace();
      }
   }
}
// Name class
class Name {
   @Expose
   private String name;
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
}
// Employees class
class Employees {
   @Expose
   List<Name> emps = new ArrayList<>();
   public List<Name> getEmployees() {
      return emps;
   }
   public void addEmployee(Name name) {
      this.emps.add(name);
   }
}

Đầu ra

The values of employee1.json file:
{"emps":[{"name":"Adithya"},{"name":"Jai"}]}
{"name":"Adithya"}
{"name":"Jai"}
data added to an existing employee1.json file successfully


tệp worker1.json

Làm cách nào để thêm chuỗi JSON vào tệp JSON hiện có trong Java?