針對JSON的一些初級理解
JSON:定義JavaScript物件表示法(JavaScript Object Notation),獨立於語言和平臺,更容易解析。
Android平臺自帶了JSON了JSON解析相關的API,可以將檔案,輸入流中的資料物件轉化為JSON物件,然後從物件中獲取JSON儲存的資料內容
Android的JSON部分都在包org.json下,主要包括一下幾個類:
JSONObject:
JSON資料的提供方式:
伺服器端傳過來的jsonString ,
assets檔案下放置的.json型別的文字資料,
try {
InputStreamReader isr = new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream("assets/" + "student.json"),"utf-8");
//從assets獲取json檔案
BufferedReader bfr = new BufferedReader(isr);
String line;
StringBuilder stringBuilder = new StringBuilder();
while ((line = bfr.readLine())!=null){
stringBuilder.append(line);
}//將JSON資料轉化為字串
System.out.println(stringBuilder.toString());
System.out.println(tes.tostring());
} catch (IOException e) {
e.printStackTrace();
}
JSONObject json = new JSONObject(jsonString);
json.getJSONArray("key")
json.getJSONObject("key")
json.getInt("key")
json.getString("key")
資料生成方式:
JSON json1 = new JSON();
json1.put("translation","車");
JSON json2 = new JSON();
json2.put("phonetic","ka");
String[] a =["n. 汽車;車廂","n. (Car)人名;(土)賈爾;(法、西)卡爾;(塞)察爾"] ;
json2.put("explains",a);
json1.put("basic",json2);
JSONArray json3 = new JSONArray();
json4.put
json5.put
json6.put
json3.add(json4)
json3.add(json5)
json3.add(json6)
json1.put("web",json3)
JSON資料詳解:
{"translation":["車"],
"basic":
{
"phonetic":"kɑː",
"explains":["n. 汽車;車廂","n. (Car)人名;(土)賈爾;(法、西)卡爾;(塞)察爾"]},
"query":"car",
"errorCode":0,
"web":[{"value":["汽車","車子","小汽車"],"key":"Car"},
{"value":["概念車","概念車","概念汽車"],"key":"concept car"},
{"value":["碰碰車","碰撞用汽車","碰碰汽車"],"key":"bumper car"}]
}
這個JSONObject包括
一個普通的String陣列"translation"
一個JSONObject "basic", 在這個"basic"Object中又包含了 一個普通的string "phonetic",一個普通的String陣列"explains"
一個普通的String "query"
一個普通的String "errorCode"
一個JSONArray "web",在這個"web"裡又包含了三個JSONObject , 每個JSONObject中又包含一個String陣列,一個普通的String
{
GSON 基於事件驅動的解析json資料格式
String jsonString = GSON.toJson(src);
Object = GSON.fromJson(jsonString,type)
type = new TypeToken<Type>(){}.getType
Android平臺自帶了JSON了JSON解析相關的API,可以將檔案,輸入流中的資料物件轉化為JSON物件,然後從物件中獲取JSON儲存的資料內容
Android的JSON部分都在包org.json下,主要包括一下幾個類:
JSONObject:
JSON資料的提供方式:
伺服器端傳過來的jsonString ,
assets檔案下放置的.json型別的文字資料,
try {
InputStreamReader isr = new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream("assets/" + "student.json"),"utf-8");
//從assets獲取json檔案
BufferedReader bfr = new BufferedReader(isr);
String line;
StringBuilder stringBuilder = new StringBuilder();
while ((line = bfr.readLine())!=null){
stringBuilder.append(line);
}//將JSON資料轉化為字串
System.out.println(stringBuilder.toString());
System.out.println(tes.tostring());
} catch (IOException e) {
e.printStackTrace();
}
JSONObject json = new JSONObject(jsonString);
json.getJSONArray("key")
json.getJSONObject("key")
json.getInt("key")
json.getString("key")
資料生成方式:
JSON json1 = new JSON();
json1.put("translation","車");
JSON json2 = new JSON();
json2.put("phonetic","ka");
String[] a =["n. 汽車;車廂","n. (Car)人名;(土)賈爾;(法、西)卡爾;(塞)察爾"] ;
json2.put("explains",a);
json1.put("basic",json2);
JSONArray json3 = new JSONArray();
json4.put
json5.put
json6.put
json3.add(json4)
json3.add(json5)
json3.add(json6)
json1.put("web",json3)
JSON資料詳解:
{"translation":["車"],
"basic":
{
"phonetic":"kɑː",
"explains":["n. 汽車;車廂","n. (Car)人名;(土)賈爾;(法、西)卡爾;(塞)察爾"]},
"query":"car",
"errorCode":0,
"web":[{"value":["汽車","車子","小汽車"],"key":"Car"},
{"value":["概念車","概念車","概念汽車"],"key":"concept car"},
{"value":["碰碰車","碰撞用汽車","碰碰汽車"],"key":"bumper car"}]
}
這個JSONObject包括
一個普通的String陣列"translation"
一個JSONObject "basic", 在這個"basic"Object中又包含了 一個普通的string "phonetic",一個普通的String陣列"explains"
一個普通的String "query"
一個普通的String "errorCode"
一個JSONArray "web",在這個"web"裡又包含了三個JSONObject , 每個JSONObject中又包含一個String陣列,一個普通的String
{
GSON 基於事件驅動的解析json資料格式
String jsonString = GSON.toJson(src);
Object = GSON.fromJson(jsonString,type)
type = new TypeToken<Type>(){}.getType
相關文章
- JSON的一些理解JSON
- 初學 PHP 對於回撥函式的一些理解PHP函式
- nmap的理解與利用(初級)
- 微軟針對初級程式開發人員開設線上學習網站微軟學習網站
- 對ThreadLocal的一些理解thread
- 對React一些原理的理解React
- 對於Fragment的一些理解Fragment
- 對運營的一些理解
- 對synchronized(this)的一些理解(轉)synchronized
- 初學Java時沒有理解的一些概念Java
- 針對mysql不同binlog模式的一些測試MySql模式
- 針對高密級單位的安全保密郵件
- 專門針對初學者的Node.js教程--四個例子絕對可用Node.js
- 針對 Node.js 初學者的入門資源彙總Node.js
- 對於Redux原始碼的一些理解Redux原始碼
- 對於最近的一些理解和思考
- 初學struts,不太理解對映中的.do.
- 對Java多執行緒的一些理解Java執行緒
- memagent實現對memcache的初級叢集管理
- 針對高 級使用者的 Vim 編輯實用技巧
- 我對duwamish7的一些理解(一) (轉)
- JsonPath:針對json的強大的規則解析與引數查詢工具JSON
- 網站防攻擊策略 針對於JSON網站的安全解決方案網站JSON
- 一些初級命令以及基本使用者管理
- JSON Web Token 的理解JSONWeb
- 初學者Mybatis的初級使用MyBatis
- 對HTML語義化的一些理解和記錄HTML
- 對Oracle資料庫中Stroage子句的一些理解Oracle資料庫
- 初級~~初級~~~初初級~~~KanjiWeb 3.0 (漢字通)破解~~~~~~~~~ (8千字)Web
- Linux 系統中一些針對檔案系統的節能技巧Linux
- 被難倒了! 針對高階前端的8個級JavaScript面試問題前端JavaScript面試
- 對CSS vertical-align的一些理解與認識CSS
- 如何寫出殺手級簡歷(針對程式設計師)程式設計師
- 演算法中對數量級的一點理解演算法
- 深入理解 JSONJSON
- 理解JSON Web TokenJSONWeb
- Libuv初理解
- 針對IE及其它的css hackCSS