❶ android開發 解析JSON數據格式 如何去掉JSON數
Android開發中如何解析JSON數據格式?
1.JSON解析
(1).解析Object之一:
1 {"url":"http://www。ideaex。net"}
解析方法:
1 JSONObject demoJson = new JSONObject(jsonString);
2 String url = demoJson.getString("url");
(2).解析Object之二:
1 {"name":"android","name":"iphone"}
解析方法:
1 JSONObject demoJson = new JSONObject(jsonString);
2 String name = demoJson.getString("name");
3 String version = demoJson.getString("version");
4 System.out.println("name:"+name+",version:"+version);
(3).解析Array之一:
1 {"number":[1,2,3]}
解析方法:
1 JSONObject demoJson = new JSONObject(jsonString);
2 JSONArray numberList = demoJson.getJSONArray("number");
3 for(int i=0; i<numberList.length(); i++){
4 //因為數組中的類型為int,所以為getInt,其他getString,getLong同用
5 System.out.println(numberList.getInt(i));
6 }
(4).解析Array之二:
1 {"number":[[1],[2],[3]]}
解析方法:
1 //嵌套數組遍歷
2 JSONObject demoJson = new JSONObject(jsonString);
3 JSONArray numberList = demoJson.getJSONArray("number");
4 for(int i=0; i<numberList.length(); i++){
5 //獲取數組中的數組
6 System.out.println(numberList.getJSONArray(i).getInt(0));
7 }
(5).解析Object和Array:
1 {"mobile":[{"name":"android"},{"name":"iphone"}]}
解析方法:
1 JSONObject demoJson = new JSONObject(jsonString);
2 JSONArray numberList = demoJson.getJSONArray("mobile");
3 for(int i=0; i<numberList.length(); i++){
4 System.out.println(numberList.getJSONObject(i).getString("name"));
5 }
所以,我們發現get後面接著的是你想要的得到的結果的類型:getType,這個對理解很有幫助。
(6).使用optType:
上面的例子,使用getType在碰到查找不到節點的時候,會拋出異常。
如果使用optType,找不到節點,則返回null或者默認值。
1 //無url節點,拋出異常
2 String url = demoJson.getString("url");
3 //無url節點,返回空,如果為基本類型,則返回默認值
4 String url = demoJson.optString("url");
(7).UTF-8的BOM頭導致解析JSON異常的問題
到json文件保存為utf-8的時候,在windows平台下,會產生bom頭"EF BB EF"位元組在文本的最前面(需要用十六進制工具打開才能看的到)。
有兩種解決方法:
a.使用UltraEdit打開json文件,另存為的時候,選擇格式UTF-8,無BOM頭,如果還不行,在用記事本打開,另存為UTF-8下,多試幾次就可以了。
b.使用代碼處理,截取json主體內容:
1 String jsonString = getJsonString();
2 jsonString = jsonString.substring(jsonString.indexOf("{"),jsonString.lastIndexOf("}")+1);
2.JSON必知
(1).JSON是一種輕量級的數據交換格式
(2).JSON基於兩種數據結構:Object和Array。其中Object是「名稱/值」對的集合。
(3).對象:大括弧,每一組string-value結合以","分隔,string和value以冒號分隔。
(4).數組:
(5).string由雙引號包圍的任意數量Unicode字元的集合,使用反斜線轉義。
(6).value可以是雙引號括起來的字元串(string)、數值(number)、true、false、 null、對象(object)或者數組(array)。這些結構可以嵌套。
(7).空白可以加入到任何符號之間,包括空格,tab,回車,換行等。
(8).舉例:
a.Object實例:
01 {
02 "Image": {
03 "Width": 800,
04 "Height": 600,
05 "Title": "View from 15th Floor",
06 "Thumbnail": {
07 "Url": "http://www.example.com/image/481989943",
08 "Height": 125,
09 "Width": "100"
10 },
11 "IDs": [116, 943, 234, 38793]
12 }
13 }
b.Array實例:
01 [
02 {
03 "precision": "zip",
04 "Latitude": 37.7668,
05 "Longitude": -122.3959,
06 "Address": "",
07 "City": "SAN FRANCISCO",
08 "State": "CA",
09 "Zip": "94107",
10 "Country": "US"
11 },
12 {
13 "precision": "zip",
14 "Latitude": 37.371991,
15 "Longitude": -122.026020,
16 "Address": "",
17 "City": "SUNNYVALE",
18 "State": "CA",
19 "Zip": "94085",
20 "Country": "US"
21 }
22 ]
❷ Android 該如何解析json數組裡面的數組
[]就是JSONArray,{}就是JSONObject
JSONObject json = new JSONObject("{xxx}");
json.getJsonArray("data").getJSONObject(0).getJsonArray("task_photo");
❸ Android 解析 嵌套的JsonArray 這個具體該怎麼解析呢
String json = "";
try {
JSONArray arr = new JSONArray(json);
for (int i=0; i<arr.length(); i++) {
JSONObject obj = arr.getJSONObject(i);
String secondId = obj.getString("secondId");
String lessonpId = obj.getString("lessonpId");
String secondTitle = obj.getString("secondTitle");
JSONArray recordArr = obj.getJSONArray("record");
for (int j=0; j<recordArr.length(); j++) {
JSONObject recordObj = recordArr.getJSONObject(j);
// String secondId2 = recordObj.getString("secondId");
String threeTitle = recordObj.getString("threeTitle");
String threeId = recordObj.getString("threeId");
}
}
} catch (JSONException e) {
e.printStackTrace();
}
❹ android如何從網頁中獲取一個json數組並解析出來,顯示在textview裡面
1,先要建立一個線程獲取json數據
2接著解析json數據
3,設置textview
例如:json數據,strjson= {"key": ["a","b"]}
JSONObject object = new JSONObject (strjson)
JSONArray arr= object.getJSONArray("key") ;
String text=arr.getString(0);
❺ android中這樣的JSON數據應該如何解析,
java">//json我的理解就是一系列鍵值對,只要KEY值對了,對應數據格式也對了,那就可以了!~
JsonObjectj=...//此處是獲取json的方法,自定
booleanb=j.getBoolean("result");//取出「result」對應的值,這里的結果應該
//是"true";
JsonArrayja=j.getJsonArray("asks");//取出「asks」對應的值,因為asks對應的值
//中含有方括弧,所以這是JsonArray型數據,需要取出進一步解析;JsonArray可以與數組
//進行比較理解,我個人是這樣的,供參考
for(inti=0;i<ja.length();i++){
JsonArrayja1=ja.getJsonArray(i);//獲取ja中的第一個元素,因為這個元素
//也是jsonArray,所以可以再進一步解析
doubled1=ja1.getDouble(0);//jsonArray中沒有getFloat()這個方法
//,自行轉型就可以了
doubled2=ja1.getDouble(1);//
}
以上,希望對你有所幫助
❻ 求助android解析JSON的問題
http://www.bejson.com/go.php?u=http://www.bejson.com/index.php
這是一個json格式驗證的鏈接,可以驗證自己寫的json格式是否正確