FastJson解析JSON字符串以中文命名的key值和JavaBean字段冲突的解决

  • Post author:
  • Post category:java




问题引入:

在我们解析JSON字符串时,常常要将解析的结果封装成JavaBean对象,封装成JavaBean对象我们一般使用FastJson依赖,但当我们要解析的JSON字符串中有以中文命名的key值时,再写JavaBean时就会遇到JSON字符串中的key字段名与JavaBean中的字段名难以对应的问题

如:

当我们的JSON字符串为:

{
    "姓名":"abin"
}

那这时如果我们要写JavaBean字段时,一般我们会按照Java的命名规则来命名

如:

private String name;

但如果这样写的话,使用FastJson去解析成Java对象时,就会出现JSON字段名与JavaBean字段名不一致的问题导致解析失败,这时大家会经常的遇到空指针异常,原因就是json中的key与bean中的属性不能匹配,因此在转换过程中出现了部分属性为null的情况,字段名不一致导致的解析失败数据为空。



解决问题:

想要解决这一问题,我们可以使用阿里巴巴FastJson提供的

@JSONField

注解进行处理

解决代码:

@JSONField(name = "姓名")
private String name;

通过这个操作,就解决了JSON中的key与JavaBean中的属性不匹配的问题。



版权声明:本文为qq_26185495原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。