Android JSON数据解析
2017-02-09 20:48
85 查看
1.什么是JSON
1.JSON:JavaScript Object Notation;
2.JSON数据是一系列键值对的集合;
3.JSON已经被大多数开发人员接受,在网络数据的传输当中应用非常广泛;
4.JSON相对于XML来讲解析稍微方便一些。
2.JSON数据格式的特点
JSON vs XML
1.JSON和XML的数据可读性基本相同;
2.JSON和XML同样拥有丰富的解析手段;
3.JSON相对于XML来讲,数据体积小;
4.JSON与JavaScript的交互更加方便;
5.JSON对数据的描述性相对较差。
一个JSON的例子
{
“name”:“Michael”, //这是JSON对象里的一个键值对 “name” 为键 “Michael” 为值
“address”: // “address” 为键值对的键 {······} 值又为一个JSON对象
{
“city”:“beijing”,
“street”:“ChaoyangRoad”,
“postcode”:“100025”
}
}
【】中括号代表一个JSON对象的数组,里面可以可以放入很多个的JSON对象
private String jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Michael\",\"age\":21}]";
//创建一个JSON对象,name的值因为是String类型所以要带双引号,20因为是整形所以不用带双引号。
①开始解析数组 【
②开始解析对象 {
③解析键值对 \"name\"````````
④解析键值对 ,\"age\"``````````
⑤解析对象结束 }
⑥再开始解析对象 {
七.解析键值对 ···········
⑧解析键值对 ···········
⑨解析对象结束 ·········
十.解析数组结束 ············
3.使用Gson解析JSON数据
情况一
如果要解析一个JSON数据,首先需要生成一个JSONReader对象
JsonReader reader = new JsonReader (new StringReader(jsonData));
reader.beginArray();
情况二
private String jsonData = "{\"name\":\"Michael\",\"age\":20}";
```````````````````````````````````````````````
Gson gson = new Gson();
User user = gson.fromJson(jsonData,User.class); // jsonData 为JSON对象的数据数据 User.class 你要把前面的JSON对象数据转化为哪个类的对象,就把这个类的class对象放进来
情况三
Type listType = new TypeToken<LinkedList<user>>() {}.getType();
Gson gson = new Gson();
LinkedList<User> users = gson.fromJson(jsonData,listType); //得到一个链表,这个链表内放置了从JSONDATA解析出来的USER对象。
for (Iterator iterator = users.iterator(); iterator.hasNext();){ // 通过迭代器把LinkedList<User>的数据取出来。
User user = (User) iterator.next();
System.out.println("name------->" + user.getName());
System.out.println("age--------->" + user.getAge());
}
1.JSON:JavaScript Object Notation;
2.JSON数据是一系列键值对的集合;
3.JSON已经被大多数开发人员接受,在网络数据的传输当中应用非常广泛;
4.JSON相对于XML来讲解析稍微方便一些。
2.JSON数据格式的特点
JSON vs XML
1.JSON和XML的数据可读性基本相同;
2.JSON和XML同样拥有丰富的解析手段;
3.JSON相对于XML来讲,数据体积小;
4.JSON与JavaScript的交互更加方便;
5.JSON对数据的描述性相对较差。
一个JSON的例子
{
“name”:“Michael”, //这是JSON对象里的一个键值对 “name” 为键 “Michael” 为值
“address”: // “address” 为键值对的键 {······} 值又为一个JSON对象
{
“city”:“beijing”,
“street”:“ChaoyangRoad”,
“postcode”:“100025”
}
}
【】中括号代表一个JSON对象的数组,里面可以可以放入很多个的JSON对象
private String jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Michael\",\"age\":21}]";
//创建一个JSON对象,name的值因为是String类型所以要带双引号,20因为是整形所以不用带双引号。
①开始解析数组 【
②开始解析对象 {
③解析键值对 \"name\"````````
④解析键值对 ,\"age\"``````````
⑤解析对象结束 }
⑥再开始解析对象 {
七.解析键值对 ···········
⑧解析键值对 ···········
⑨解析对象结束 ·········
十.解析数组结束 ············
3.使用Gson解析JSON数据
情况一
如果要解析一个JSON数据,首先需要生成一个JSONReader对象
JsonReader reader = new JsonReader (new StringReader(jsonData));
reader.beginArray();
情况二
private String jsonData = "{\"name\":\"Michael\",\"age\":20}";
```````````````````````````````````````````````
Gson gson = new Gson();
User user = gson.fromJson(jsonData,User.class); // jsonData 为JSON对象的数据数据 User.class 你要把前面的JSON对象数据转化为哪个类的对象,就把这个类的class对象放进来
情况三
Type listType = new TypeToken<LinkedList<user>>() {}.getType();
Gson gson = new Gson();
LinkedList<User> users = gson.fromJson(jsonData,listType); //得到一个链表,这个链表内放置了从JSONDATA解析出来的USER对象。
for (Iterator iterator = users.iterator(); iterator.hasNext();){ // 通过迭代器把LinkedList<User>的数据取出来。
User user = (User) iterator.next();
System.out.println("name------->" + user.getName());
System.out.println("age--------->" + user.getAge());
}
相关文章推荐
- android 解析json数据格式
- Android学习之JSON数据解析
- Android 获取Google Weather API 并通过Xml和JSON解析数据
- android 解析json数据格式
- Android解析json数据
- Android Json 数据解析
- android 解析json数据格式
- Android 解析json数据格式
- android中解析服务器发过来的JSON数据
- Android网络开发中如何使用JSON进行网络通信---Android JSON数据通讯方法解析
- 【Android应用开发】-(17)获取Google天气预报通过Xml和JSON解析数据
- Android学习系列(20)--App数据格式之解析Json
- Android学习之JSON数据解析
- Android 获取Google Weather API 并通过Xml和JSON解析数据
- 在 Android 应用程序中使用 Internet 数据 解析 XML、JSON 和 protocol buffers 数据
- android 解析json数据格式
- android 解析json数据格式
- android 解析json数据格式
- android中json数据的解析
- Android教程之JSON数据解析