當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
jsr250-api_JSON处理的Java API(JSR-353)–流API
生活随笔
收集整理的這篇文章主要介紹了
jsr250-api_JSON处理的Java API(JSR-353)–流API
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
jsr250-api
Java很快將具有一組標準的API,作為Java EE 7的一部分處理JSON。該標準定義為JSR 353 – JSON處理的Java API (JSON-P),目前正在最終批準投票中。 JSON-P提供面向對象和基于流的方法,在本文中,我將介紹流API。 您可以從以下鏈接獲取JSON-P參考實現:
- http://java.net/projects/jsonp/
JsonGenerator(javax.json.stream)
JsonGenerator使創建JSON非常容易。 憑借其流暢的API ,用于生成JSON的代碼與生成的JSON非常相似。
package blog.jsonp;import java.util.*; import javax.json.Json; import javax.json.stream.*;public class GeneratorDemo {public static void main(String[] args) {Map<String, Object> properties = new HashMap<String, Object>(1);properties.put(JsonGenerator.PRETTY_PRINTING, true);JsonGeneratorFactory jgf = Json.createGeneratorFactory(properties);JsonGenerator jg = jgf.createGenerator(System.out);jg.writeStartObject() // {.write("name", "Jane Doe") // "name":"Jane Doe",.writeStartObject("address") // "address":{.write("type", 1) // "type":1,.write("street", "1 A Street") // "street":"1 A Street",.writeNull("city") // "city":null,.write("verified", false) // "verified":false.writeEnd() // },.writeStartArray("phone-numbers") // "phone-numbers":[.writeStartObject() // {.write("number", "555-1111") // "number":"555-1111",.write("extension", "123") // "extension":"123".writeEnd() // },.writeStartObject() // {.write("number", "555-2222") // "number":"555-2222",.writeNull("extension") // "extension":null.writeEnd() // }.writeEnd() // ].writeEnd() // }.close();}}輸出量
以下是運行GeneratorDemo的輸出。
{"name":"Jane Doe","address":{"type":1,"street":"1 A Street","city":null,"verified":false},"phone-numbers":[{"number":"555-1111","extension":"123"},{"number":"555-2222","extension":null}] }JsonParser(javax.json.stream)
使用JsonParser,我們將解析上一示例的輸出以獲取地址信息。 JSON解析器提供與JSON結構相對應的事件的深度優先遍歷。 根據事件的類型,可以從JsonParser獲得不同的數據。
package blog.jsonp;import java.io.FileInputStream; import javax.json.Json; import javax.json.stream.JsonParser; import javax.json.stream.JsonParser.Event;public class ParserDemo {public static void main(String[] args) throws Exception {try (FileInputStream json = new FileInputStream("src/blog/jsonp/input.json")) {JsonParser jr = Json.createParser(json);Event event = null;// Advance to "address" keywhile(jr.hasNext()) {event = jr.next();if(event == Event.KEY_NAME && "address".equals(jr.getString())) {event = jr.next();break;}}// Output contents of "address" objectwhile(event != Event.END_OBJECT) {switch(event) {case KEY_NAME: {System.out.print(jr.getString());System.out.print(" = ");break;}case VALUE_FALSE: {System.out.println(false);break;}case VALUE_NULL: {System.out.println("null");break;}case VALUE_NUMBER: {if(jr.isIntegralNumber()) {System.out.println(jr.getInt());} else {System.out.println(jr.getBigDecimal());}break;}case VALUE_STRING: {System.out.println(jr.getString());break;}case VALUE_TRUE: {System.out.println(true);break;}default: {}}event = jr.next();}}}}輸出量
以下是運行ParserDemo的輸出。
type = 1 street = 1 A Street city = null verified = falseMOXy和用于JSON處理的Java API(JSR-353)
將JSON映射到域對象仍然是與JSON交互的最簡單方法。 現在,JSR-353即將完成,我們將其集成到MOXy的JSON綁定中。 您可以使用以下鏈接跟蹤我們的進度:
- 錯誤405161 – MOXy支持Java API進行JSON處理(JSR-353)
翻譯自: https://www.javacodegeeks.com/2013/04/java-api-for-json-processing-jsr-353-stream-apis.html
jsr250-api
總結
以上是生活随笔為你收集整理的jsr250-api_JSON处理的Java API(JSR-353)–流API的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何处理异常
- 下一篇: 奇变偶不变什么梗 奇变偶不变是啥梗