关于Gson和FastJson的坑

字符串转 POJO
{
  "advNote" : "测试note",
  "lastTime" : 1513131060000,
  "thumb" : "http://127.0.0.1/iHkobK0_7XQxN06gtCIVCFfWjx8",
  "goodsGroupThumb" : "http://127.0.0.1/iHkobK0_7XQxN06gtCIVCFfWjx8",
  "goodsGroup" : [ "马良" ],
  "sortNo" : 1513130723865,
  "createTime" : 1513130700000,
  "name" : "444个人",
  "id" : "2c91b5ae6034bbd101604d9e8a4dua"
}
复制代码

pojo.java

public class GoodsAdv {
  private String id;

  private Date createTime;

  private Date lastTime;

  private String advertisingPosition;

  private Date beginTime;

  private String advertisingType;

  private String vendorType;

  private String thumb;

  private Date endTime;

  private String couponEffectType;

  private String goodsGroup;

  private String name;

  private String advNote;

  private Long sortNo;

  private String auditStatus;

  private String goodsGroupThumb;
    // setter .. getter
}
复制代码

使用 Gson 转 POJO 对象就会报错,原因就在 goodsGroup 这个字段, 而 FastJson 没有问题,可以正常转换

 public static void main(String[] args) {
    String str = "{\"advNote\":\"测试note\",\"lastTime\":1513131060000,\"thumb\":\"http://qiniu.xuduolove.com/FiHkobK0_7XQxN06gtCIVCFfWjx8\",\"goodsGroupThumb\":\"http://qiniu.xuduolove.com/FiHkobK0_7XQxN06gtCIVCFfWjx8\",\"goodsGroup\":[\"马良\"],\"sortNo\":1513130723865,\"createTime\":1513130700000,\"name\":\"444个人\",\"id\":\"2c91b5ae6034bbd101604d9e8a1d0068\"}";

    GsonBuilder builder = new GsonBuilder();

    builder.registerTypeAdapter(Date.class, new JsonDeserializer<Date>() {
      public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
        return new Date(json.getAsJsonPrimitive().getAsLong());
      }
    });

    Gson gson = builder.create();
    GoodsAdv goodsAdv = gson.fromJson(str, GoodsAdv.class);

    System.out.println(goodsAdv+"\n");

    GoodsAdv goodsAdv1 = JSONObject.parseObject(str, GoodsAdv.class);

    System.out.println(goodsAdv1+"\n");
    
  }
复制代码

Gson 版本

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.2</version>
</dependency>
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值