針對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
- 對Transformer的一些理解ORM
- 對React一些原理的理解React
- VisualStudio遇到的一些初級問題
- 初學Java時沒有理解的一些概念Java
- 對於Redux原始碼的一些理解Redux原始碼
- JsonPath:針對json的強大的規則解析與引數查詢工具JSON
- 對Java多執行緒的一些理解Java執行緒
- JSON Web Token 的理解JSONWeb
- 網站防攻擊策略 針對於JSON網站的安全解決方案網站JSON
- 針對ShotGun的ServerRewindOTGServer
- system.text.Json 針對繼承多型型別的集合,使用自定義Converter,進行json序列化JSON繼承多型型別
- 針對高 級使用者的 Vim 編輯實用技巧
- 對HTML語義化的一些理解和記錄HTML
- JSON.stringify() 的深入理解JSON
- rpa對json的支援JSON
- Libuv初理解
- 初學者Mybatis的初級使用MyBatis
- 在JSON中遇到的一些坑JSON
- 作為一名初級前端開發工程師的一些感悟前端工程師
- 演算法中對數量級的一點理解演算法
- 物件轉json字串的過程中對value為null的值的一些處理物件JSON字串Null
- 理解JSON Web Token (一)JSONWeb
- 深入理解JMeter中的JSON ExtractorJMeterJSON
- 被難倒了! 針對高階前端的8個級JavaScript面試問題前端JavaScript面試
- 針對運營商行業的虛擬化應用效能監測管理解決方案行業
- java操作http請求針對不同提交方式(application/json和application/x-www-form-urlencoded)JavaHTTPAPPJSONORM
- 針對IE及其它的css hackCSS
- 淺複製、深複製與序列化【初級Java必需理解的概念】Java
- 初學Golang的一些細節Golang
- 關於我對可迭代物件,迭代器,生成器的一些理解物件
- React事務的一些理解React
- c++ typedef的一些理解C++
- Express原始碼的一些理解Express原始碼
- 關於position的一些理解
- 分散式鎖的一些理解分散式