วันเสาร์ที่ 7 พฤษภาคม พ.ศ. 2559

Java API for JSON


Java API สำหรับการสร้างและประมวลผล JSON มีหน้าที่อะไรบ้าง ??
-มาตรฐาน Java API ใช้สำหรับ parse, generate, transform, query JSON
-รูปแบบของวัตถุและ Stream API คล้ายกับ DOM และ StAX
-การ Binding JSON เพื่อเตรียมพร้อม Java objects

JsonParser คือ การแยก JSON Streaming ให้อยู่ห่างจาก input sources โดยใช้หลักการคล้ายกับ StAX XMLStreamReader

ขั้นตอนการใช้งาน ประกอบด้วย การประกาศ Json.createParser(…), Json.createParserFactory().createParser(…)

ส่วนประกอบที่สำคัญของ JSON มีอะไร เราไปดูกัน !!!

จากการอ้างอิงเอกสารงาน JavaOne สรุปโครงสร้างของ JSON ในภาษา Java ได้ดังนี้ครับ...

-START_ARRAY, START_OBJECT, KEY_NAME, VALUE_STRING, VALUE_NUMBER, VALUE_TRUE, VALUE_FALSE, VALUE_NULL, END_OBJECT, END_ARRAY







JSON Input

{
    "firstName": "John", "lastName": "Smith", "age": 25,
    "phoneNumber": [
        { "type": "home", "number": "212 555-1234" },
        { "type": "fax", "number": "646 555-4567" }
    ]
}

Java Code

Event event = parser.next();          // START_OBJECT
event = parser.next();                // KEY_NAME
event = parser.next();                // VALUE_STRING
String name = parser.getString();     // "John”

JsonGenerator : สร้าง JSON ไปยัง output sources คล้ายกับ StAX’s XMLStreamWriter
โดยใช้ Json.createGenerator(…), Json.createGeneratorFactory().createGenerator(…) จากการเลือกการกำหนดค่าที่มีคุณสมบัติ เช่น pretty printing

Java Code

JsonGenerator ge=Json.createGenerator(…);
ge.writeStartArray()
    .writeStartObject()
      .write("type", "home”)
      .write("number", "212 555-1234")
    .writeEnd()
    .writeStartObject()
      .write("type", "fax”)
      .write("number", "646 555-4567")
    .writeEnd()
  .writeEnd()
.close();

JSON Output


[
  {
    "type": "home”,
    "number": "212 555-1234"
  },
  {
    "type": "fax”,
    "number": "646 555-4567"
  }
]

JsonBuilder

-สร้าง JsonObject และ JsonArray
-กำหนด method chaining
-Type-safe (ไม่รวมทั้ง mix array และการสร้าง object methods)
-ยังสามารถใช้ JSONObject และ JsonArray ได้

JsonObject obj = Json.createObjectBuilder().build();
JsonArray value =
    Json.createArrayBuilder().add(Json.createObjectBuilder()
      .add("type", "home")
      .add("number", "212 555-1234")
  )
  .add(Json.createObjectBuilder()
      .add("type", "fax")
      .add("number", "646 555-4567")
  )
  .build();

JSON Output

[
  {
    "type": "home”,
    "number": "212 555-1234"
  },
  {
    "type": "fax”,
    "number": "646 555-4567"
  }
]

JsonReader

-อ่าน JSONObject และ JsonArray จาก input source คือ I/O Reader, InputStream (+ encoding)
-เลือกการกำหนดค่าที่มีคุณสมบัติ โดยใช้ JsonParser pluggable

try(JsonReader reader = Json.createReader(io)) {
    JsonObject obj = reader.readObject();
}

JsonWriter

-เขียน JSONObject และ JsonArray แล้วส่งออกไป ที่ I/O Writer, OutputStream (+ encoding)
-เลือกการกำหนดค่าที่มีคุณสมบัติ เช่น pretty printing
-ใช้ JsonParser pluggable

try(JsonWriter writer = Json.createWriter(io)) {
    writer.writeObject(obj);
}

หาข้อมูลเพิ่มเติม
-สามารถอ่าน draft spec และ API docs ที่ http://json-processing-spec.java.net

Resources
http://glassfish.java.net/
http://dlc.sun.com.edgesuite.net/glassfish/4.0/promoted/
-JSON-P
http://jsonp.java.net
-Slide Deck
http://www.slideshare.net/reza_rahman

Reference : เอกสาร Java API for JSON Processing โดย Reza Rahman (GlassFish/Java EE Evangelist) จาก Oracle ในงาน JavaOne
top.sk Web Developer

I can design web applications by using Java Server Faces (JSF), Primefaces, EJB3, SQL, DB2 (IBM) and designing report (Word, Excel and PDF) by using XML Script and Crystal Clear Report for the organization that can be easily and no problem for used and they can use the Web to manage the customer's organization effectively. I want to learn a new culture, technology and colleagues involved in the IT profession.

ไม่มีความคิดเห็น :

แสดงความคิดเห็น