使用Android sdk自帶的jsonReader來解析json
json資料的解析相對而言,還是比較容易的,實現的程式碼也十分簡單。這裡用的是jsonReade方法來進行json資料解析。
1.在解析之前,大家需要知道什麼是json資料。
json資料儲存的物件是無序的“名稱/值”對的集合。和其他的資料儲存方式相比,json資料的可讀性,可擴充套件性,編碼難度,解碼難度都有一定的優勢。在json資料中,
對於一個物件:
(1)一個物件以“{”(左括號)開始,“}”(右括號)結束。
(2)每個“名稱”後跟一個“:”(冒號);
(3)“‘名稱/值’ 對”之間使用“,”(逗號)分隔。
對於一個陣列:
(1)一個陣列以“[”(左中括號)開始,“]”(右中括號)結束。
(2)值之間使用“,”(逗號)分隔。
對於json檔案
{ "id": "3232", "data": [{ "data1": "555", "data2": "3243" }, { "data1": "888", "data2": "777" } ] }
JsonReader解析的例子是:
public void parseAssertData() { InputStream is = null; try { is = this.getAssets().open("json1.json", Context.MODE_PRIVATE); int length = is.available(); byte[] buffer = new byte[length]; is.read(buffer); String temp = new String(buffer); Reader response = new StringReader(temp.toString()); parseResponse(response); } catch (IOException ex) { ex.printStackTrace(); } } private void parseResponse(Reader response) throws IOException { JsonReader reader = new JsonReader(response); reader.beginObject(); while (reader.hasNext()) { String name = reader.nextName(); if ("id".equals(name)) { String id = reader.nextString(); System.out.println("===id="+id); } else if (name.equals("data")) { reader.beginArray(); while (reader.hasNext()) { reader.beginObject(); String name1; while (reader.hasNext()) { name1 = reader.nextName(); if (name1.equals("data1")) { String s1 = reader.nextString(); System.out.println("===s1="+s1); } else if (name1.equals("data2")) { String s2 = reader.nextString(); System.out.println("===s2="+s2); } else { reader.skipValue(); } } reader.endObject(); } reader.endArray(); } else { reader.skipValue(); } } reader.endObject(); reader.close(); }
1. 使用JsonReader方法解析Json資料物件,你需要建立一個JsonReader物件.
2.然後使用beginArray()來開始解析 [ 左邊的第一個陣列。
3.再使用beginObject()來開始解析陣列{中的第一個物件。
4.對於直接的資料可以直接得到解析到的資料,但對於在json中巢狀了陣列的資料,需要在寫一個解析方法。
5.在解析完成後,別忘用endArray(),endObject()來關閉解析。
程式碼在
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4822/viewspace-2818509/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- android使用Gson來解析jsonAndroidJSON
- Android自帶Json庫使用引發的問題AndroidJSON
- JSON介紹及Android最全面解析方法(Gson、AS自帶org.son、Jackson解析)JSONAndroid
- 解析帶轉義符的jsonJSON
- Flutter json解析json_serializable的使用及自動化生成模板FlutterJSON
- android解析HashMap格式的jsonAndroidHashMapJSON
- 來自銳動天地的直播ios SDKiOS
- android複雜json解析AndroidJSON
- Android系列---JSON資料解析AndroidJSON
- weex原始碼解析(四)- android引入sdk原始碼Android
- 使用jsoncpp解析jsonJSON
- android JSON解析資料-解析天氣預報AndroidJSON
- android自帶的api的例子很多AndroidAPI
- 解析帶有反斜槓的json報文報錯JSON
- Android手動建立和解析JsonAndroidJSON
- 【JSON解析】淺談JSONObject的使用JSONObject
- 微軟:23% 的WP使用者竟來自Android微軟Android
- Android開發之自帶下載器DownloadManager的使用Android
- 使用 Swift 進行 JSON 解析SwiftJSON
- Android影片編輯SDK--RDVECore來自銳動的無UI,高度抽象化APIAndroidUI抽象API
- 硬解析帶來高CPU消耗的診斷
- Android基礎之json資料解析AndroidJSON
- Android之json複雜資料解析AndroidJSON
- Android解析XML和JSON(部落格例子)AndroidXMLJSON
- VS自帶工具:dumpbin的使用
- Android 自動編譯、打包生成apk檔案 3 - 使用SDK Ant方式Android編譯APK
- 使用JSONPath解析JSON資料JSON
- Android SDK 26 以下如何使用 AutoDispose 來解決Rxjava 洩露問題AndroidRxJava
- Android實現自帶橫線的EditTextAndroid
- 三分鐘帶你解析Hive中的json字串(詳細!)HiveJSON字串
- 怎麼能讓json_decode解析帶斜槓的字串JSON字串
- Unity3d Android SDK接入解析(二)Unity3d Android SDK的設計與兩種接入方式Unity3DAndroid
- 後來才知道的JavaScript自帶函式JavaScript函式
- javascript指令碼中使用json2.js解析jsonJavaScript指令碼JSON
- Android okHttp網路請求之Json解析AndroidHTTPJSON
- 【Azure Developer】使用.Net Core解析JSON的筆記DeveloperJSON筆記
- Ajax使用一+javascript解析Ajax返回的json字串JavaScriptJSON字串
- Android IntentService 的使用和解析AndroidIntent