JSONObject對象解析
下面看一下數(shù)據(jù)
{
"user":{
"name":"alex",
"age":"18",
"isMan":true
}
}
有一個user字段,其中包含了該user的一些基本屬性瞧毙。那么如何解析呢胧华?
在解析時,有一個很關(guān)鍵的地方:如果是{}包含宙彪,則為JSONObject對象矩动,如果為[]則為JSONArray對象。
看到上面的例子释漆,我們看到整個數(shù)據(jù)為JSONObject,其內(nèi)部包含了一個user字段悲没,該字段的值也是一個JSONObject對象
public class OrgJSONTest {
public static String json = "{"user":{"name":"alex","age":"18","isMan":true}}";
public static void main(String[] args){
JSONObject obj = new JSONObject(json);//最外層的JSONObject對象
JSONObject user = obj.getJSONObject("user");//通過user字段獲取其所包含的JSONObject對象
String name = user.getString("name");//通過name字段獲取其所包含的字符串
System.out.println(name);
}
}
二、如何從字符串jsonString獲得JSONObject對象和JSONArray對象
/*json字符串最外層是大括號時:*/
JSONObject jsonObject = new JSONObject(jsonStr);
/*json字符串最外層是方括號時:*/
JSONArray jsonArray = new JSONArray(jsonStr);
三灵汪、如何從JSONArray中獲得JSONObject對象
遇到方括號時檀训,就要先獲取JSONArray,然后再循環(huán)遍歷出JSONObject
大家可以把JSONArray當(dāng)成一般的數(shù)組來對待享言,只是獲取的數(shù)據(jù)內(nèi)數(shù)據(jù)的方法不一樣峻凫。
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
}
注意:
*JSONObject 獲取jsonArray :需要數(shù)組的字段名*/
JSONArray jsonArray = jsonObject.getJSONArray("children");
/*jsonArray獲取JSONObject : 需要遍歷數(shù)組*/
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
}
示例一:
String json = " {"status":0,"data":["7835313","1","33333333","3085779"]} " ;
JSONObject jsonObject = new JSONObject(json);
/*JSONObject 獲取jsonArray :需要數(shù)組的字段名*/
JSONArray jsonArray = jsonObject.getJSONArray("data");
for (int i = 0; i < jsonArray.length(); i++) {
//得到每一張卡。
}
解析注冊卡