使用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
- android解析HashMap格式的jsonAndroidHashMapJSON
- Flutter json解析json_serializable的使用及自動化生成模板FlutterJSON
- 解析帶轉義符的jsonJSON
- weex原始碼解析(四)- android引入sdk原始碼Android
- 【JSON解析】淺談JSONObject的使用JSONObject
- 來自銳動天地的直播ios SDKiOS
- 使用JSONPath解析JSON資料JSON
- 解析帶有反斜槓的json報文報錯JSON
- Android IntentService 的使用和解析AndroidIntent
- Unity3d Android SDK接入解析(二)Unity3d Android SDK的設計與兩種接入方式Unity3DAndroid
- Android影片編輯SDK--RDVECore來自銳動的無UI,高度抽象化APIAndroidUI抽象API
- 【Android SDK】在命令列管理Android SDKAndroid命令列
- Android SDK 26 以下如何使用 AutoDispose 來解決Rxjava 洩露問題AndroidRxJava
- OpenCV-android-sdk 配置以及使用(Java)OpenCVAndroidJava
- 【Azure Developer】使用.Net Core解析JSON的筆記DeveloperJSON筆記
- 三分鐘帶你解析Hive中的json字串(詳細!)HiveJSON字串
- Android小黑科技---來自火星的你Android
- Android分享---呼叫系統自帶的分享功能Android
- 使用Javascript 開發個JSON解析庫JavaScriptJSON
- Flutter 中的 JSON 解析FlutterJSON
- php 自帶datetime類的使用PHP
- 使用 PhpStrom 自帶的 git 功能PHPGit
- 原創:struts2+json+android整合開發解析前奏JSONAndroid
- Unity3d Android SDK接入解析(一)Unity3d 與 Android之間的互相呼叫Unity3DAndroid
- java json解析jar包基本使用記錄JavaJSONJAR
- 使用cJSON庫對JSON格式進行解析JSON
- Exercise:JSON解析JSON
- cJSON:解析JSONJSON
- js json解析JSON
- 使用 Ruby 的 Nokogiri 庫來解析
- Android ToolBar 使用完全解析Android
- Android SDK 開發——釋出使用踩坑之路Android
- Centos 下安裝 Android SDK 供 Jenkins 打包使用CentOSAndroidJenkins
- 新一代Json解析庫Moshi使用及原理解析JSON
- 原創:struts2+json+android開發整合解析終結JSONAndroid
- 細說 Golang 的 JSON 解析GolangJSON