javascript
json-tree api_什么是JSON处理(JSON-P API)?
json-tree api
Java EE中的JSON-P簡介
JSON處理1.0( JSR 353 )的Java API是一個低級,輕量級的JSON解析器和生成器,它提供了在屬性和值級別上操作JSON數據的能力。
JSR 353提供了兩種JSON處理模型: 對象模型和流模型。 這兩個模型都可以生成JSON數據并將其輸出到流(例如平面文件)中,并且兩個模型都可以讀取數據。 但是,流模型在處理大量JSON數據時特別有效。 這允許實現數據導入功能以及即時轉換此類數據。
但是,流模型在處理大量JSON數據時特別有效。 這允許實現數據導入功能以及即時轉換此類數據。
JSON-P對象模型
javax.json包提供了用于處理JSON數據的對象模型API。 它包括為JSON結構建模的類和用于JSON讀取器和寫入器的工廠。
Object模型將構成JSON數據結構的元素表示為對象。 例如,JSON數組由javax.json.JsonArray類表示,該類又實現List接口。
JSON對象由實現Map接口的javax.json.JsonObject類表示。
javax.json.Json類包括各種工廠方法,這些方法可創建JsonGenerator , JsonParser和JsonReader實例。
以下代碼段從JSON文檔創建JSONObject實例,然后從其屬性中檢索數據。
1: private String json = "{\"id\": 123456, \"title\": \"Fun with JSON-Processing\", \"published\": true}";2: JsonReader jsonReader = Json.createReader(new StringReader(json)); 3: JsonObject jsonObject = jsonReader.readObject(); 4: jsonReader.close(); 5: jsonObject.getInt("id") 6: jsonObject.getString("title") 7: jsonObject.getBoolean("published")第1行是我要處理的JSON文檔。 我創建一個StringReader對象的實例,并將其傳遞給JSON文檔,該文檔通過createReader()靜態方法傳遞給JsonReader 。
我在第3行將JSON文檔讀入JsonObject實例,并在第4行關閉閱讀器。
現在有了JsonObject,我可以通過將屬性名稱傳遞給getString()方法來讀取JSON屬性的值。
此示例的代碼存儲在此文章隨附的GitHub存儲庫中。
JSON-P流模型
javax.json.streaming包提供了解析和生成JSON數據的Streaming模型API。 它包括用于創建解析器和生成器的工廠。
它的實現方式完全不同,而且級別較低。 從本質上講 ,有兩個主要的工廠來生成和解析JSON數據,它們是JsonGeneratorFactory和JsonParserFactory 。 這些工廠面向寫入和讀取數據流。
通過鏈接將數據添加到緩沖區中的方法,然后通過調用flush或close方法將其刷新到輸出流,來完成JSON數據的寫入。
JSON數據以流方式進行解析,并且被設計為讀取JSON數據的最有效方法。 解析器是從InputStream或Reader輸入源創建的。
以下代碼段通過使用JsonObjectBuilder上的構建器方法構造JSONObject實例來創建它,然后從JsonObject檢索數據。
1: JsonObject jsonObject = Json.createObjectBuilder().add("id", 123456).add("title", "Fun with JSON-Processing").add("published", true).build();2: jsonObject.getInt("id") 3: jsonObject.getString("title") 4: jsonObject.getBoolean("published")在第1行上,構造了JsonObject 。 如您所見,它從Json類調用了靜態createObjectBuilder()方法,我為需要的JsonObject擁有了許多屬性調用add方法。 在這種情況下,我需要三個屬性:id,title和published。 最終方法是構造JsonObject的build()方法。
第2到4行在JsonObject的第1行上調用了getter方法,并像上一個示例一樣,一個接一個地檢索屬性值。
此示例的代碼存儲在此文章隨附的GitHub存儲庫中。
接下來是什么?
如果您喜歡本文,您將喜歡我為Lynde.com錄制的新的Java EE JSON處理課程。 在本課程中,我將深入研究整個API,將其視為對象和流模型。 我使用了大量的代碼示例,并給您提出挑戰,以幫助您提高學習效率。
進一步閱讀
我經常發布Java EE技術,因此您可能對以下內容感興趣:
- 上下文和依賴注入 (CDI)
- 企業Java Bean (EJB)
- JSP,JSP和表達語言
- RESTful Web服務
翻譯自: https://www.javacodegeeks.com/2017/09/json-processing-json-p-api.html
json-tree api
總結
以上是生活随笔為你收集整理的json-tree api_什么是JSON处理(JSON-P API)?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蔚来拟融资约30亿美元? 官方紧急辟谣:
- 下一篇: lua加密教程_我们相信加密! 教程