? ? ? ? JSON數據已經成為了互聯網中大多數數據的傳遞方式,本文首先介紹了JSON數據格式及其特點,而后實現了在Android中加載并解析JSON數據和在Android中生成JSON數據的操作。
1.JSON數據格式簡介
JSON:javaScript對象表示法,儲存和交換文本信息的語法
特點:輕量級文本數據交換格式,獨立與語言與平臺,自我描述性易于理解
相比xml數據:更小更快更易解析。沒有結束標簽,更短,讀寫速度更快,使用數組,沒有保留字。
語法:數據用鍵值對保存,數據由逗號分隔,花括號保存對象,方括號保存數組
JSON的值可以為:數字,字符串,邏輯值,數組,對象,null
2.讀取JSON 格式數據
創建json格式數據,復制在assets目錄下
通過getAssets().open()方法打開assets目錄下的文件,結果為InputStream,指定編碼方式后創建InputStreamReader,轉為BufferedReader,使用BufferReader.readLine()方法讀取文件為String,使用StringBuffer存整個文本文件。關閉輸入流
InputStreamReader isr =newInputStreamReader(getAssets().open("test.json"),"UTF-8");
BufferedReader br =newBufferedReader(isr);
String line;
StringBuffer sb =newStringBuffer();
while((line = br.readLine())!=null){
sb.append(line);
}
br.close();
isr.close();
通過String類型的JSON文本,創建JSON對象
//創建JSONObject對象
JSONObject root =newJSONObject(sb.toString());
JSON對象可以通過getInt(),getString(),getJSONArray()獲取相應的值
root.getString(“cat")
lan.getInt(“id”)
root.getJSONArray("language")
JSONArray可以通過getJSON(index),獲取數組中索引位置的JSON對象
JSONObject lan = ja.getJSONObject(i);
所有關于JSON的讀取都是通過鍵讀取值
3.創建JSON格式數據
創建根JSON對象,創建JSON對象,為對象添加屬性,將對象存入JSON數組,將數組作為根對象的屬性值添加到屬性,添加其他屬性。將根對象轉為字符穿輸出。
//創建根對象
JSONObject root =newJSONObject();
JSONObject lan1 =newJSONObject();
//為對象添加屬性
lan1.put("id",1);
lan1.put("ide","Eclipse");
lan1.put("name","java”);
//創建JSON數組
JSONArray ja =newJSONArray();
ja.put(lan1);
ja.put(lan2);
ja.put(lan3);
//將數組添加為根對象屬性
root.put("language",ja);
//添加屬性時,第二個參數為Object,String對象本身為為Object
root.put("cat","it”);
//將根對象轉為String輸出
Log.i("print",root.toString());