Gson 樹模型
gson 樹模型
樹模型準(zhǔn)備 json 文檔的內(nèi)存樹表示。它構(gòu)建了一個(gè) jsonobject 節(jié)點(diǎn)樹。它是一種靈活的方法,類似于 xml 的 dom 解析器。
1. 從 json 創(chuàng)建樹
在讀取json之后,jsonparser提供指向樹的根節(jié)點(diǎn)的指針。根節(jié)點(diǎn)可用于遍歷完整的樹。請考慮以下代碼段以獲取提供的json字符串的根節(jié)點(diǎn)。
//create an jsonparser instance jsonparser parser = new jsonparser(); string jsonstring = "{\"name\":\"mahesh kumar\", \"age\":21,\"verified\":false,\"marks\": [100,90,85]}"; //create tree from json jsonelement rootnode = parser.parse(jsonstring);
2. 遍歷樹模型
在遍歷樹并處理數(shù)據(jù)時(shí),使用到根節(jié)點(diǎn)的相對路徑獲取每個(gè)節(jié)點(diǎn)。以下代碼段顯示了如何遍歷樹。
jsonobject details = rootnode.getasjsonobject(); jsonelement namenode = details.get("name"); system.out.println("name: " +namenode.getasstring()); jsonelement agenode = details.get("age"); system.out.println("age: " + agenode.getasint());
3. 范例
在c:>gson_workspace中創(chuàng)建名為 gsontester 的java類文件。
文件:gsontester.java
import com.google.gson.jsonarray; import com.google.gson.jsonelement; import com.google.gson.jsonobject; import com.google.gson.jsonparser; import com.google.gson.jsonprimitive; public class gsontester { public static void main(string args[]) { string jsonstring = "{\"name\":\"mahesh kumar\", \"age\":21,\"verified\":false,\"marks\": [100,90,85]}"; jsonparser parser = new jsonparser(); jsonelement rootnode = parser.parse(jsonstring); if (rootnode.isjsonobject()) { jsonobject details = rootnode.getasjsonobject(); jsonelement namenode = details.get("name"); system.out.println("name: " +namenode.getasstring()); jsonelement agenode = details.get("age"); system.out.println("age: " + agenode.getasint()); jsonelement verifiednode = details.get("verified"); system.out.println("verified: " + (verifiednode.getasboolean() ? "yes":"no")); jsonarray marks = details.getasjsonarray("marks"); for (int i = 0; i < marks.size(); i++) { jsonprimitive value = marks.get(i).getasjsonprimitive(); system.out.print(value.getasint() + " "); } } } }
4. 驗(yàn)證結(jié)果
使用 javac 編譯器編譯類如下:
c:\gson_workspace>javac gsontester.java
現(xiàn)在運(yùn)行 gsontester 查看結(jié)果:
c:\gson_workspace>java gsontester
驗(yàn)證輸出。
name: mahesh kumar age: 21 verified: no 100 90 85
相關(guān)文章
- JDBC 教程
- JDBC 驅(qū)動(dòng)類型
- JDBC 連接數(shù)據(jù)庫范例
- JDBC 連接數(shù)據(jù)庫步驟
- JDBC Statement, PreparedStatement 和 CallableStatement
- JDBC ResultSet 結(jié)果集
- JDBC Resultset 結(jié)果集范例
- JDBC 事務(wù)保存點(diǎn)范例
- Scala 教程
- Scala 簡介
- Scala 類和對象
- Scala 文件 I/O
- Spring 教程
- Spring 模塊
- Spring 依賴注入
- Spring 自動(dòng)裝配
- Spring MVC教程
- Spring MVC表單標(biāo)簽庫
- Spring security