java对象数据转换成json数据格式

1 篇文章 0 订阅
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.	                            //@Since(版本号)能完美地实现这个功能.还的字段可能,随着版本的升级而删除,那么  
2.	                            //@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<String,Object> liut=new LinkedHashMap<String,Object>();
          liut.put("resStr", bjson);
          String tjson=gson.toJson(liut,new TypeToken<Map<String, Object>>(){}.getType());
List json
 List<haha> t=new ArrayList();
          bb1.setItem("1");
          bb1.setValue("行不行");
          bb2.setItem("2");
          bb2.setValue("不行");
          t.add(bb1);
          t.add(bb2);
          //a1.setAa(aa1);
          String bjson=gson.toJson(t);
//输出结果:[{"item":"1","value":"行不行"},{"item":"2","value":"不行"}]
解析 json字符串如下:
{"resStr":"{'result': [{\"item\":\"ITEM\",\"value\":\"查验结果:查验失败。您输入的开票金额与实际发票不符!\"}]}"}
带\的都是进行了,两次tojson操作,生成的串,将单引号,换成双引号,可正常解析



以上心得来自同事lhl

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值