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

Làm cách nào để chúng tôi có thể đọc và ghi tệp bằng cách sử dụng API phát trực tuyến Gson trong Java?


Chúng tôi có thể đọc và ghi tệp bằng API phát trực tuyến Gson và nó dựa trên tiêu chuẩn đọc và ghi tuần tự. JsonWriter JsonReader là các lớp cốt lõi được xây dựng để ghi và đọc trực tuyến trong API truyền trực tuyến . JsonWriter ghi một giá trị được mã hóa JSON vào một luồng, mỗi lần một mã thông báo. Luồng bao gồm cả giá trị chữ ( chuỗi, số, boolean và nulls ) cũng như bắt đầu kết thúc dấu phân cách đối tượng và mảng và JsonReader đọc một giá trị được mã hóa JSON dưới dạng một luồng mã thông báo. Luồng này bao gồm cả nghĩa đen giá trị (s trings, số, boolean và null) cũng như bắt đầu dấu phân cách cuối của các đối tượng và mảng. Các mã thông báo được chuyển qua orde-first orde r, cùng thứ tự mà chúng xuất hiện trong tài liệu JSON.

Ghi vào tệp bằng JsonWriter

Ví dụ

import java.io.*;
import com.google.gson.stream.*;
public class JsonWriterTest {
   public static void main(String args[]) {
      JsonWriter writer;
      try {
         writer = new JsonWriter(new FileWriter("input.json"));
         writer.beginObject();
         writer.name("name").value("Adithya");
         writer.name("age").value(25);
         writer.name("technologies");
         writer.beginArray();
         writer.value("Java");
         writer.value("Scala");
         writer.value("Python");
         writer.endArray();
         writer.endObject();
         writer.close();
         System.out.println("Data write to a file successfully");
      } catch(Exception e) {
         e.printStackTrace();
      }
   }
}

Đầu ra

Data write to a file successfully


Đọc tệp bằng JsonReader

Ví dụ

import java.io.*;
import com.google.gson.stream.*;
public class JsonReaderTest {
   public static void main(String args[]) {
      JsonReader reader;
      try {
         reader = new JsonReader(new FileReader("input.json"));
         reader.beginObject();
         while(reader.hasNext()) {
            String name = reader.nextName();
            if(name.equals("name")) {
               System.out.println(reader.nextString());
            } else if(name.equals("age")) {
               System.out.println(reader.nextInt());
            } else if(name.equals("technologies")) {
               reader.beginArray();
               while(reader.hasNext()) {
                  System.out.println(reader.nextString());
               }
               reader.endArray();
            } else {
               reader.skipValue();
            }
         }
         reader.endObject();
         reader.close();
      } catch(Exception e) {
         e.printStackTrace();
      }
   }
}

Đầu ra

Adithya
25
Java
Scala
Python