第一步注册:  compile 'com.google.code.gson:gson:2.6.2'

第二步初始化:

 Gson gson = new GsonBuilder()
.setLenient()// json宽松
.enableComplexMapKeySerialization()//支持Map的key为复杂对象的形式
.serializeNulls() //智能null
.setPrettyPrinting()// 调教格式
.disableHtmlEscaping() //默认是GSON把HTML 转义的
.create();

1.简单json解析:

[{username:"arthinking",userId:"001"},{username:"Jason",userId:"002"}];

public class User {
private String username ;
private int userId ;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
}

解析:

Type listType = new TypeToken<LinkedList<User>>(){}.getType();
Gson gson = new Gson();
LinkedList<User> users = gson.fromJson(jsonData, listType);
for (Iterator iterator = users.iterator(); iterator.hasNext();) {
User user = (User) iterator.next();
System.out.println(user.getUsername());
System.out.println(user.getUserId());
}

复杂一点的json

  {
"data": {
"partnerteamlist": [
{
"pteamId": 72825,
"ptitle": "随摄影/共6套服装/准爸准妈共拍/免费肚画/底片全送。",
"pteamprice": 288
},
{
"pteamId": 72598,
"ptitle": "随摄影/拍摄200张/4本相册/品质拍摄/送全新婚纱。",
"pteamprice": 2888
},
{
"pteamId": 72613,
"ptitle": "随摄影/送全新婚纱/多外景拍摄/服装不限数量/绝无二次消费!",
"pteamprice": 3699
},
{
"pteamId": 72638,
"ptitle": "随摄影/服装不限数量/高品质拍摄260张/送全新婚纱。",
"pteamprice": 4299
},
{
"pteamId": 72716,
"ptitle": "随摄影/3组服装造型/内外景拍摄/完全透明消费!",
"pteamprice": 388
}
],
"liketeamlist": [
{
"lteamId": 65886,
"ltitle": "爱丽尔婚纱摄影/2本相册/6套服装造型/拍摄不限最低拍摄150张。",
"limage": "http://img.pztuan.com/upfile/team/2013/0712/201307120257551465.jpg",
"lteamprice": 518,
"lmarketprice": 3999
},
{
"lteamId": 57133,
"ltitle": "陶冶摄影/婚纱闺蜜/6组服装造型/拍摄不低于120张!",
"limage": "http://img.pztuan.com/upfile/team/2013/0628/201306281115249737.jpg",
"lteamprice": 580,
"lmarketprice": 3380
}
],
"feedbacks": {
"feedbacklist": [
{
"comment": "5分",
"createtime": "2014.07.08 13:38",
"score": 5,
"username": "l***2"
}
],
"totalcount": 1,
"totalscore": 5
}
},
"err": null,
"state": 1
}

解析model:

import java.util.List;  

    public class OtherDetail {  

        private int state;
private List<err> err;
private OtherDetail2 data; public int getState() {
return state;
} public void setState(int state) {
this.state = state;
} public List<err> getErr() {
return err;
} public void setErr(List<err> err) {
this.err = err;
} public OtherDetail2 getData() {
return data;
} public void setData(OtherDetail2 data) {
this.data = data;
} public class OtherDetail2 {
private List<partnerteamlist> partnerteamlist;
private List<liketeamlist> liketeamlist;
private List<feedbacks> feedbacks; public List<liketeamlist> getLiketeamlist() {
return liketeamlist;
} public void setLiketeamlist(List<liketeamlist> liketeamlist) {
this.liketeamlist = liketeamlist;
} public List<feedbacks> getFeedbacks() {
return feedbacks;
} public void setFeedbacks(List<feedbacks> feedbacks) {
this.feedbacks = feedbacks;
} public class partnerteamlist {
private int pteamId;
private String ptitle;
private Double pteamprice; public int getPteamId() {
return pteamId;
} public void setPteamId(int pteamId) {
this.pteamId = pteamId;
} public String getPtitle() {
return ptitle;
} public void setPtitle(String ptitle) {
this.ptitle = ptitle;
} public Double getPteamprice() {
return pteamprice;
} public void setPteamprice(Double pteamprice) {
this.pteamprice = pteamprice;
} } public class liketeamlist {
private int lteamId;
private String ltitle;
private String limage;
private Double lteamprice;
private Double lmarketprice; public int getLteamId() {
return lteamId;
} public void setLteamId(int lteamId) {
this.lteamId = lteamId;
} public String getLtitle() {
return ltitle;
} public void setLtitle(String ltitle) {
this.ltitle = ltitle;
} public String getLimage() {
return limage;
} public void setLimage(String limage) {
this.limage = limage;
} public Double getLteamprice() {
return lteamprice;
} public void setLteamprice(Double lteamprice) {
this.lteamprice = lteamprice;
} public Double getLmarketprice() {
return lmarketprice;
} public void setLmarketprice(Double lmarketprice) {
this.lmarketprice = lmarketprice;
}
} public class feedbacks {
private int totalcount;
private Double totalscore;
private List<feedbacklist> feedbacklist; public int getTotalcount() {
return totalcount;
} public void setTotalcount(int totalcount) {
this.totalcount = totalcount;
} public Double getTotalscore() {
return totalscore;
} public void setTotalscore(Double totalscore) {
this.totalscore = totalscore;
} public List<feedbacklist> getFeedbacklist() {
return feedbacklist;
} public void setFeedbacklist(List<feedbacklist> feedbacklist) {
this.feedbacklist = feedbacklist;
} public class feedbacklist {
private String username;
private String comment;
private String createtime;
private Double score; public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getComment() {
return comment;
} public void setComment(String comment) {
this.comment = comment;
} public String getCreatetime() {
return createtime;
} public void setCreatetime(String createtime) {
this.createtime = createtime;
} public Double getScore() {
return score;
} public void setScore(Double score) {
this.score = score;
} }
} public List<partnerteamlist> getPartnerteamlist() {
return partnerteamlist;
} public void setPartnerteamlist(List<partnerteamlist> partnerteamlist) {
this.partnerteamlist = partnerteamlist;
}
} public class err {
private int code;
private String msg; public int getCode() {
return code;
} public void setCode(int code) {
this.code = code;
} public String getMsg() {
return msg;
} public void setMsg(String msg) {
this.msg = msg;
}
}
}

gson使用

 Gson gson = new Gson();
OtherDetail d = gson.fromJson(jsonString,Detail.class);//取值

android gson使用的更多相关文章

  1. 【转】Android Gson的使用

    Android Gson 2014 年 05 月 22 日 android 目前的客户端大都有和服务端进行交互,而数据的格式基本就是json了,于是在Android开发中就经常用到json解析,方便的 ...

  2. Android Gson的使用总结

    1.概念 Gson是谷歌发布的一个json解析框架 2.如何获取 github:https://github.com/google/gson android studio使用 compile 'com ...

  3. Android Gson 操作

    JSON序列化后的数据不带类名与名命空间,所以这两个服务端跟客户端可以不对应,需要保证字段对应即可 Asp.net MVC端 using System; using System.Collection ...

  4. Android Gson解析

    目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),解析速度最快的是Gson,下载地址:https://co ...

  5. Android Gson使用笔记

    最近在做一个java web service项目,需要用到jason,本人对java不是特别精通,于是开始搜索一些java平台的json类库. 发现了google的gson,因为之前对于protoco ...

  6. Android Gson深入分析

    眼下解析json有三种工具:org.json(Java经常使用的解析),fastjson(阿里巴巴project师开发的).Gson(Google官网出的).解析速度最快的是Gson,下载地址:htt ...

  7. Android Gson解析json详解

    目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),解析速度最快的是Gson,下载地址:https://co ...

  8. Android Gson解析复杂Json

    JSON原数据 {"total":1,"rows":[{"ID":1,"Title":"台州初级中学招收初一年 ...

  9. Android Gson解析json工具类封装

    package com.springSecurity.gson; import java.util.ArrayList; import java.util.List; import java.util ...

随机推荐

  1. get 方法向后台提交中文乱码问题

    前端js代码 function searchAll(){      var contentStr = $('#contentStr_id').val();      contentStr =encod ...

  2. C# 哈希加密

    1.方法一: [c-sharp] view plaincopy //适用于C#语言 //使用前需导入以下命名空间:using System.Web.Security; //第一个参数为需加密的字符串, ...

  3. Cocos2d-x3.0终于版Mac以及Win系统相关环境部署

    因个人原因此博客停止更新,其它更新博文将在该博客继续更新. http://blog.csdn.net/xiaohan_aimti/article/details/24653831 就在前几天,2014 ...

  4. MySQL<多表操作>

    多表操作 外键 什么是外键 外键是指引用另一个表中的一列或多列,被引用的列应该具有主键约束或唯一性约束. 外键用于建立和加强两个表数据之间的链接. 为表添加外键约束 想要真正连接两个表的数据,就需要为 ...

  5. swift - 移除界面上的所有元素

    下面代码可以遍历移除页面视图上的所有元件: //清空所有子视图 func clearViews() { for v in self.view.subviews as [UIView] { v.remo ...

  6. 如何在单片机上使用printf函数(printf)(avr)(stm)(lpc)(单片机)(转)

    摘要:    当我们在调试代码时,通常需要将程序中的某个变量打印至PC机上,来判断我们的程序是否按预期的运行,printf函数很好的做到了这一点,它能直接以字符的方式输出变量名和变量的值,printf ...

  7. 关于微信的jsdk的若干亲身实践之小结

    前言: 业务来源:自主研发的手机app软件有分享文章到微信或者QQ以及微博的功能,而在微信中再次点击分享按钮的时候,情况就出现的不可把控了: 文章显示的缩略图不能正常显示:文章的简介不能显示……而我们 ...

  8. PHP实现IP–数字互相转换

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. C++虚继承的概念[转]

    C++中虚拟继承的概念 为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类.这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数 ...

  10. Android UsageStats:应用根据启动次数、启动时间、应用名称排序

    Android 7.1.1 developers/samples/android/system/AppUsageStatistics/Application/src/main/java/com/exa ...