JSON:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式
两种结构:
单条JSON数据:JSONObject:JSON的基本单元
多条 JSONarray数据
### 展现形式:1.{}
2.以键值对形式组成
3. 键必须包裹一对双引号
4.多个键值对要以逗号隔开
解析JSONObject
写一个方法,把JSON数据转译成字符串形式,直接把JSNO数据用引号括起来,会自动转化成字符串形式
private void get2JSON() {
String str2 = "{\"name\":\"张三\",\"age\":21,\"info\":{\"class\":\"三年一班\",\"id\":2016001}}\n";
try {
//创建JSONObject对象,把转义的JSNO数据放进去
JSONObject jsonobject = new JSONObject(str2);
//用getString得到字符串形式的键
String name = jsonobject.getString("name");
int age = jsonobject.getInt("age");
//
JSONObject INFO = jsonobject.getJSONObject("info");
String className = INFO.getString("class");
int id = INFO.getInt("id");
name_tvjson.setText(name);
age_tvjson.setText(age + "");
classname_tvjson.setText(className);
id_tvjson.setText(id + "");
} catch (JSONException e) {
e.printStackTrace();
}
}
解析JSONarray的案例
private void getJSONarray1() {
String str = "[ {\"name\":\"张三\",\"age\":21,\"info\":{\"class\":\"三年一班\",\"id\":2016001}}, {\"name\":\"李四\",\"age\":22,\"info\":{\"class\":\"三年二班\",\"id\":2016002}}]\n";
try {
//创建JSONArray对象放JSONArray数组数据
JSONArray jsnoarray = new JSONArray(str);
//创建JSONObject对象
JSONObject obja = jsnoarray.getJSONObject(0);//这里的0是游标位置的0
String name = obja.getString("name");
int age = obja.getInt("age");
name_tv.setText(name);
age_tv.setText(age + "");
//创建一个新的JSONObject对象 ,通过obja.getJSONObject("info")得到嵌套的数据
JSONObject obj1 = obja.getJSONObject("info");
String className = obj1.getString("class");
int id = obj1.getInt("id");
classname_tv.setText(className);
id_tv.setText(id + "");
//
JSONObject objb = jsnoarray.getJSONObject(1);
String name1 = objb.getString("name");
int age1 = objb.getInt("age");
name1_tv.setText(name1);
age1_tv.setText(age1 + "");
JSONObject obj2 = objb.getJSONObject("info");
String className1 = obj2.getString("class");
int id1 = obj2.getInt("id");
classname1_tv.setText(className1);
id1_tv.setText(id1 + "");
} catch (JSONException e) {
e.printStackTrace();
}
}