一、JSON解析_JSON数据格式
①JSON对象 例如: String json1="{"id":12,"name":"Tom"}"; 类似于java中的map

②JSON数组 例如:String json2="[{"id":12,"name":"Tom"},{"id":12,"name":"Tom"}]"; 类似于java中的List

二、JSON解析方向
①json-->bean
②bean-->json
三、JSON解析技术
①Android原生技术
1>将json格式的字符串{}装换成Java对象
<1>、JSONObject(String json):将json字符串解析为json对象
<2>、getXxx(String name):根据name,在json对象中得到对应的Value
<3>、optXxx(String name):根据name,在json对象中得到对应的Value
注意:optXxx方法会在对应的key中的值不存在的时候返回一个空字符串或者返回你指定的默认值,但是getString会出现空指针的错误
解析过程:
String json ="{"id":2, "name":"大虾","price":12.3,"imagePath":"http://192.168.10.165:8080/L05_Server/images/f1.jpg"}";
JSONObject jsonObject = new JSONObject(json);
int id = jsonObject.getInt("id");
String name = jsonObject.optString("name");
double price = jsonObject.optDouble("price");
String imagePath = jsonObject.optString("imagePath");
//注意下面与bean发生联系啦 这样将数据封装在bean内 以后处理数据就很方便啦
ShopInfo shopInfo = new ShopInfo(id, name, price, imagePath);
2>将json格式的字符串[]装换成Java对象的List
<1>JSONArray(String json):将json字符串解析为json数组
<2>int length():得到json数组中元素的个数
<3>getXxx(int index):根据下标得到json数组中对应的元素数据
<4>optXxx(int index):根据下标得到json数组中对应的元素数据
注意:optXxx方法会在对应的key中的值不存在的时候返回一个空字符串或者返回你指定的默认值,但是getString会出现空指针的错误
测试数据:
[
{
"id":1, "name":"大虾1",
"price":12.3,
"imagePath":"http://192.168.10.165:8080/f1.jpg"
},
{
"id":2, "name":"大虾2",
"price":12.5,
"imagePath":"http://192.168.10.165:8080/f2.jpg"
}
]
3>复杂json数据解析
测试数据:
4>特殊json数据解析
测试数据:
{
"data": {
"count": 5,
"items": [
{
"id": 45,
"title": "坚果"
},
{
"id": 132,
"title": "炒货"
},
{
"id": 166,
"title": "蜜饯"
},
{
"id": 195,
"title": "果脯"
},
{
"id": 196,
"title": "礼盒"
}
]
},
"rs_code": "1000",
"rs_msg": "success"
②Gson框架技术
③FastJson框架技术
浙公网安备 33010602011771号