Android Json解析方法
来源:互联网 发布:全新硬盘重装mac系统 编辑:程序博客网 时间:2024/06/11 19:37
1、Json:JavaScript Object Notation
2、Json数据是一系列的键值对集合,相对XML体积小
3、Json相对于XML解析方便一些,与JavaScript交互方便
4、描述性相对XML较差
Json格式例子:
[{"name":"zhangsan","age":20},{"name":"lisi","age":21}]
Json介绍:http://baike.baidu.com/view/136475.htm
Json官网:http://www.json.org/
解析方法:
1、使用Android官方API :JsonReader (Added in API level 11)
http://developer.android.com/reference/android/util/JsonReader.html
2、使用Google的Json解析插件:Gson (推荐)
http://code.google.com/p/google-gson/
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。
a、使用JsonReader解析,类似Android官方API
b、使用Gson的API直接转对象或对象的列表
Gson使用例子代码:
Json解析工具类:
package com.wyy.json.util;import java.lang.reflect.Type;import java.util.List;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;/***************************************************************** *@ProjectName AboutJson *@FileName JsonUtil.java *@Author WYY *@Date 2013-6-14 *@Copyright 2012-2022 wyyft@163.com All rights reserved. * *****************************************************************//** * @Author WYY * @Description */public class JsonUtil{ private static JsonUtil instance; private Gson gson = new Gson(); /** * @Description 获取JsonUtil的单例对象 * @modified by WYY 2013-6-14 * @return */ public static JsonUtil newInstance() { if (instance == null) { instance = new JsonUtil(); } return instance; } /** * 解析单个对象 * * @Description * @modified by WYY 2013-6-14 * @param jsonData * @return */ public Person parsePerson(String jsonData) { Person person = gson.fromJson(jsonData, Person.class); return person; } /** * @Description 解析多个对象组成的数组 * @modified by WYY 2013-6-14 * @param jsonData * @return */ public List<Person> parsePersons(String jsonData) { Type type = new TypeToken<List<Person>>() { }.getType(); List<Person> ps = gson.fromJson(jsonData, type); return ps; }}
实体类Person:
/***************************************************************** *@ProjectName AboutJson *@FileName Person.java *@Author WYY *@Date 2013-6-14 *@Copyright 2012-2022 wyyft@163.com All rights reserved. * *****************************************************************/package com.wyy.json.util;/** * @Author WYY * @Description */public class Person{ private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + "]"; }}
测试数据:
/***************************************************************** *@ProjectName AboutJson *@FileName JsonData.java *@Author WYY *@Date 2013-6-14 *@Copyright 2012-2022 wyyft@163.com All rights reserved. * *****************************************************************/package com.wyy.json.util;/** * @Author WYY * @Description */public class JsonData{ //测试数据 static String jsonString1="{\"name\":\"zhangsan\",\"age\":20}"; static String jsonString2="[{\"name\":\"zhangsan\",\"age\":20},{\"name\":\"lisi\",\"age\":21}]";}
测试类:
/***************************************************************** *@ProjectName AboutJson *@FileName Tester.java *@Author WYY *@Date 2013-6-14 *@Copyright 2012-2022 wyyft@163.com All rights reserved. * *****************************************************************/package com.wyy.json.util;import java.util.List;/** * @Author WYY * @Description */public class Tester{ public static void main(String[] args) { JsonUtil jsonUtil =JsonUtil.newInstance(); Person person =jsonUtil.parsePerson(JsonData.jsonString1); System.out.println(person); List<Person> psList = jsonUtil.parsePersons(JsonData.jsonString2); System.out.println(psList); }}
- android JSON解析方法
- Android Json解析方法
- Android中解析Json方法
- Android 通用json解析方法
- Android 解析Json的各种方法
- Android之json数据的解析方法
- Android 解析三种方法Json
- 【json】android json解析
- Android---3种Json解析方法+解析框架
- android中三种xml解析及Json解析方法
- json jackson解析json方法
- Android-Android解析JSON
- 解析JSON的方法
- JS 解析Json 方法
- JSON数据解析方法
- JSon数据解析方法
- json解析NSJSONSerialization方法
- json解析的方法
- jquery 与正则表达式应用
- php调用com组件,如何能查看到它的所有方法和属性
- chorme 里为什么HTML表单信息提交后却打开php文件
- KMP 字符串查找
- 测试管理--文档审查重点
- Android Json解析方法
- HTTP协议 (二) 基本认证
- Search Insert Position
- Struts1 Struts2
- lightoj 1369 - Answering Queries
- JavaCC简介 语法分析生成器 自顶向下 JJTree JJDoc工具 LL语法分析
- hdu2874
- Git的进一步研究
- 世界著名的游戏公司