Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Sử dụng JSONStringer để tạo JSON trong Java (org.json)

JSONStringer là gì?

JSONStringer cung cấp API fluent (chuỗi gọi phương thức) để xây dựng chuỗi JSON tuân thủ nghiêm ngặt cú pháp JSON. Mỗi instance tạo ra một văn bản JSON duy nhất.

Các phương thức chính:

  • object() / endObject() – bắt đầu/kết thúc đối tượng JSON
  • array() / endArray() – bắt đầu/kết thúc mảng JSON
  • key(String) – thêm key
  • value(Object) – thêm giá trị (String, number, boolean, null)
  • toString() – trả về chuỗi JSON hoàn chỉnh

Ví dụ 1: Tạo đối tượng JSON đơn giản

import org.json.*;

public class JsonStringerExample1 {
    public static void main(String[] args) throws JSONException {
        JSONStringer stringer = new JSONStringer();
        String jsonStr = stringer
            .object()           // Bắt đầu object
            .key("Name").value("Raja")
            .key("Age").value("25")
            .key("City").value("Hyderabad")
            .endObject()        // Kết thúc object
            .toString();

        System.out.println(jsonStr);
    }
}

Kết quả

{"Name":"Raja","Age":"25","City":"Hyderabad"}

Ví dụ 2: Tạo mảng JSON chứa nhiều đối tượng

import org.json.*;

public class JsonStringerExample2 {
    public static void main(String[] args) throws JSONException {
        JSONStringer stringer = new JSONStringer();
        String jsonStr = stringer
            .array()            // Bắt đầu mảng
            .object()           // Object 1
            .key("Name").value("Adithya")
            .key("Age").value("25")
            .key("Mobile").value("9959984000")
            .endObject()
            .object()           // Object 2
            .key("Address").value("Madhapur")
            .key("City").value("Hyderabad")
            .endObject()
            .endArray()         // Kết thúc mảng
            .toString();

        System.out.println(jsonStr);
    }
}

Kết quả

[{"Name":"Adithya","Age":"25","Mobile":"9959984000"},{"Address":"Madhapur","City":"Hyderabad"}]

Khi nào dùng? Khi cần kiểm soát chính xác cấu trúc JSON, tránh tạo đối tượng trung gian, hoặc stream JSON trực tiếp ra output.