json是一种数据格式,便于数据传输、存储、交换
gson是一种组件库,可以把java对象数据转换成json数据格式 本次心得体会,使用gson类库 生成gson对象 方法1:
GsonBuilder builder = new GsonBuilder(); //gson格式化工作,用来处理复杂的gson操作
builder.excludeFieldsWithoutExposeAnnotation() //不导出实体中没有用@Expose注解的属性 builder.enableComplexMapKeySerialization() //支持Map的key为复杂对象的
builder.serializeNulls().setDateFormat(\"yyyy-MM-dd HH:mm:ss:SSS\")//时间转化为特定格
式
builder.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)//会把字段首字母大写,注:对于实体上使用了@SerializedName注解的不会生效.
builder.disableHtmlEscaping(); //可以生成带单引号等特殊字符json builder.setPrettyPrinting() //对json结果格式化.
builder.setVersion(1.0) //有的字段不是一开始就有的,会随着版本的升级添加进来,那么在进行序列化和返序列化的时候就会根据版本号来选择是否要序列化.实现版本号下面二种方式
1. 2.
//@Since(版本号)能完美地实现这个功能.还的字段可能,随
着版本的升级而删除,那么
//@Until(版本号)也能实现这个功
能,GsonBuilder.setVersion(double)方法需要调用.
Gson gson=builder.create();
方法2: Gson gson=new Gson(); //这样生成,无法生成单引号等特殊字符
生成或解析json数据
Json的规格非常简单,只用一个页面几百个字就能说清楚,而且Douglas Crockford声称这个规格永远不必升级,因为该规定的都规定了。 1) 并列的数据之间用逗号(\",\")分隔。 2) 映射用冒号(\":\")表示。
3) 并列数据的集合(数组)用方括号(\"[]\")表示。 4) 映射的集合(对象)用大括号(\"{}\")表示。 5.所有值都是用””括起来的,有其他符号,要替换
生成map json
Map liut=new LinkedHashMap();liut.put(\"resStr\", bjson);
String tjson=gson.toJson(liut,new TypeToken