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

Pretty Print JSON ด้วย javax.json API ใน Java

แพ็กเกจ javax.json มอบ Object Model API สำหรับประมวลผล JSON Object Model API เป็น API ระดับสูงที่ให้โมเดลอ็อบเจกต์ที่ไม่เปลี่ยนแปลง (immutable) สำหรับโครงสร้าง JSON object และ array โครงสร้างเหล่านี้สามารถแสดงเป็นโมเดลอ็อบเจกต์ได้โดยใช้อินเทอร์เฟซ JsonObject และ JsonArray เราสามารถใช้ JsonGenerator เขียนข้อมูล JSON ไปยังเอาต์พุตแบบสตรีมมิ่ง JsonGenerator.PRETTY_PRINTING เป็นคุณสมบัติการกำหนดค่าเพื่อสร้าง JSON ให้สวยงาม (pretty print)

ตัวอย่างโค้ด

import java.io.*;
import java.util.*;
import javax.json.*;
import javax.json.stream.*;

public class JSONPrettyPrintTest {
    public static void main(String args[]) {
        String jsonString = "{\"name\":\"Raja Ramesh\",\"age\":\"35\",\"salary\":\"40000\"}";
        StringWriter sw = new StringWriter();
        
        try {
            JsonReader jsonReader = Json.createReader(new StringReader(jsonString));
            JsonObject jsonObj = jsonReader.readObject();
            Map<String, Object> map = new HashMap<>();
            map.put(JsonGenerator.PRETTY_PRINTING, true);
            JsonWriterFactory writerFactory = Json.createWriterFactory(map);
            JsonWriter jsonWriter = writerFactory.createWriter(sw);
            jsonWriter.writeObject(jsonObj);
            jsonWriter.close();
        } catch(Exception e) {
            e.printStackTrace();
        }
        
        String prettyPrint = sw.toString();
        System.out.println(prettyPrint); // pretty print JSON
    }
}

ผลลัพธ์

{
    "name": "Raja Ramesh",
    "age": "35",
    "salary": "40000"
}