使用Gson轻松解决复杂结构的Json数据解析 基础比较好
xudq: 内部静态类 GSON反序列:
class TestBean //implements Serializable
{
String title = "okyala";
boolean isShow = true;//这里给isShow设置了默认值,坑点
// 只需要声明为静态的就可以保持初值
static public class InnerBean
{
int width = 10;
int height = 40;
}
public InnerBean inner_bean = new InnerBean();
}
TestBean testbean = gson.fromJson("{title:"标题", isShow:"false"}", TestBean.class);
MyLog.logMsg("testbean title:" + testbean.title + " isShow:" + testbean.isShow + " "+ testbean.inner_bean.width + " height:" + testbean.inner_bean.height);
java.lang.reflect.Type type = new TypeToken<TestBean>() {}.getType();
testbean = gson.fromJson("{title:"标题", inner_bean:{5}}", type);
MyLog.logMsg("2testbean title:" + testbean.title + " isShow:" + testbean.isShow + " "+ testbean.inner_bean.width + " height:" + testbean.inner_bean.height);
11-24 11:43:38.483 20912-20912/com.tz E/com.tz: testbean title:标题 isShow:false 10 height:40
11-24 11:43:38.484 20912-20912/com.tz E/com.tz: 2testbean title:标题 isShow:true 5 height:40
Android实战——GsonFormat、Gson、fastjson快速搞定JSON数据解析
JAVA的静态变量、静态方法、静态类
Google Gson 禁止序列化内部类
GSON使用笔记(1) -- 序列化时排除字段的几种方式
序列化:将对象转换成json
GSON使用笔记(2) -- 反序列化时GSON如何创建对象实例
GSON使用笔记(3) -- 如何反序列化出List
使用Gson反序列化时导致实体类的默认值失效了,坑点。
简单重构
你真的会用Gson吗?Gson使用指南(一)
为POJO字段提供备选属性名SerializedName
注解提供了两个属性,上面用到了其中一个,别外还有一个属性alternate
,接收一个String数组。
注:alternate
需要2.4版本
@SerializedName(value = "emailAddress", alternate = {"email", "email_address"})
public String emailAddress;
Gson解析不区分大小写,json中多个key对应同一个bean的key
iOS json 解析遇到error: Error Domain=NSCocoaErrorDomain Code=3840
oc 字符串转json
[NSJSONSerialization JSONObjectWithData:dd options:NSJSONReadingMutableLeaves error:&error];