เอ 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
