-มาตรฐาน 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
ไม่มีความคิดเห็น :
แสดงความคิดเห็น