1、json 简单介绍

轻量级数据存储传输文件,比xml精简。

2、Gson简单介绍

android中解json方式很多,比较常用json-lib  goole-Gson. json-lib要包含的包比较多。就学习采用了goole的Gson.

下载链接:http://code.google.com/p/google-gson/

帮助文档:http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html

从文档结构上清楚的看到。普通的解析json只要用Gson这个类即可 解为java 对象。如果想要手解可以调用:JsonReader 的方法自己解析。我遇到的情况比较简单没必要自己手解。

3、json 解析为一个类对象

步骤:

a)  创建一个类。成员名取json 键值的键名

b)  创建一个Gson 对象

c)  调用fromJson 方法得到对应类实例。该方法有很多重载详细参阅文档。

得到实例,对应的值就赋到了对应的键里了。

String string = 
                "{\"userId\":215,\"username\":\"haode\",\"user\":\"haode\", \"eage\":512}";
        
        Gson gson = new Gson();
        try {
            Fromat mFromat = gson.fromJson(string, Fromat.class);
        } catch (Exception JsonSyntaxException) {
            // TODO: handle exception
            JsonSyntaxException.printStackTrace();           
        }

4、json 解析为一个类对象集

a)  创建一个类。成员名取json 键值的键名。

b)  创建一个Gson 对象

c)  创建类集 调用TypeToken 方法取得类型。文档中有详细描述

c)  调用fromJson 方法得到对应类集实例。该方法有很多重载详细参阅文档。

String string2 = "[{\"userId\":215,\"username\":\"haode\",\"user\":\"haode\"},{\"userId\":215,\"username\":\"haode\",\"user\":\"haode\"}]";
        Gson gson2 = new Gson();
        LinkedList<Fromat> mList = new LinkedList<MainActivity.Fromat>();
        Type typeOfT = new TypeToken<LinkedList<Fromat>>(){}.getType();
        
        try {
            mList = gson2.fromJson(string2, typeOfT);
        } catch (Exception JsonSyntaxException) {
            // TODO: handle exception
            JsonSyntaxException.printStackTrace();

}

5、json 嵌套解析。

关键点:设计一个嵌套类,类实例取名为键值

例子:

json:  {"userId":12345678,"username":"demo","plant":[{"id":1,"name":"name1"},{"id":2,"name":"name2"}]}

视图:

对应嵌套类:

解析代码:

InputStream jsonInputStream4 = getResources().openRawResource(R.raw.enty);       
        Gson jsonGson4 = new Gson();      
        Reader mReader4 = new InputStreamReader(jsonInputStream4);       
        SolarEnty mSolar4 = jsonGson4.fromJson(mReader4, SolarEnty.class);

6、json解析list (这个经常记不住)

Gson gson = new Gson();

java.lang.reflect.Type type =new TypeToken<List<ShopRecommmedEntity>>() {

}.getType();

List<ShopRecommmedEntity> list = gson.fromJson(response, type);

最新文章

  1. CRL快速开发框架系列教程五(使用缓存)
  2. [转]Python 字符串操作实现代码(截取/替换/查找/分割)
  3. Java - 处理某些图片泛红
  4. [转载] 纯手打 第一篇:安装配置gradle
  5. asp.net 的一个简单进度条功能
  6. [置顶] Android系统移植与调试之-------&gt;Amlogic方案编译步骤
  7. Java出现“Error configuring application listener of class...”类似的错误解决
  8. 开源OSS.Social微信项目解析
  9. MySQL更改命令行默认分隔符
  10. L2-005. 集合相似度(STL)*
  11. Linux下MySQL远程链接配置
  12. 5 -- Hibernate的基本用法 --4 9 其他常用的配置属性
  13. IOS沙盒机制
  14. time,sys,os 模块
  15. Java8 lambda表达式语法 1
  16. jsonp 返回以前必须要再转一次json
  17. 24 The Go image package go图片包:图片包的基本原理
  18. ubuntu 固定静态IP
  19. UIPickerView的简单使用
  20. java静态类与非静态类区别

热门文章

  1. 【转载】深入浅出http请求
  2. struts2_20140720
  3. openGL 初试 绘制三角形 和添加鼠标键盘事件
  4. linux下so动态库一些不为人知的秘密(中二)
  5. cf459B Pashmak and Flowers
  6. SQLServer查看和解决死锁的方法
  7. Java webservice
  8. linux之模拟简单登录的脚本
  9. 【hihocoder1255 Mysterious Antiques in Sackler Museum】构造 枚举
  10. ID3算法 决策树 C++实现