Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะเพิ่มสตริง JSON ให้กับไฟล์ JSON ที่มีอยู่ใน Java ได้อย่างไร?


เอ Gson เป็นไลบรารี json สำหรับ Java และสามารถใช้สร้าง JSON ได้ ในขั้นตอนเริ่มต้น เราสามารถอ่านไฟล์ JSON และแยกวิเคราะห์ไปยังวัตถุ Java ได้ จากนั้นจำเป็นต้อง typecast วัตถุ Java เป็น JsonObject และแยกวิเคราะห์เป็น JsonArray . จากนั้นวนซ้ำอาร์เรย์ JSON นี้เพื่อพิมพ์ JsonElement . เราสามารถสร้าง JsonWriter คลาสเพื่อเขียนค่าที่เข้ารหัส JSON ไปยังสตรีม ครั้งละหนึ่งโทเค็น สุดท้าย สตริง JSON ใหม่สามารถเขียนลงในไฟล์ json ที่มีอยู่ได้

ตัวอย่าง

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);
   }
}

ผลลัพธ์

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


ไฟล์employee1.json

จะเพิ่มสตริง JSON ให้กับไฟล์ JSON ที่มีอยู่ใน Java ได้อย่างไร?