【逆流而上】[Json解析]json的key为中文或数字时的处理方式

KimiKong

前段时间遇到一个问题,就是当json中的key为数字开头或者中文时如何用JavaBean去解析,如下:
{

"1000": "demo",
"数据": {
    "1": "demo",
    "2": "demo"
}

}
因为JavaBean实力类中变量名和json中的key值对应,通过一些工具就可以自动解析,但是不符合Java变量的命名规范的就没办法定义变量,最后通过Google提供的 Gson 类解决了问题,Gson可以使用@SerializedName("")注解的方式来映射key,下面列出解决方案,有关Gson的用法请自行百度。


import com.google.gson.annotations.SerializedName;
import lombok.Data;

/**
 * @author Kimi Kong
 * @version $Id: demo, v 0.1 2019年 05月 09日 23:14 Kimi Kong Exp $
 */
@Data
public class Demo {
    
    @SerializedName("1000")
    private String val1;

    @SerializedName("数据")
    private Val val2;

    @Data
    static final class Val {

        @SerializedName("1")
        private String val3;

        @SerializedName("2")
        private String val4;

    } 
}

之后就可以通过定义的val1、val2...去获取值。

<!-- ====================gson======================== -->
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.5</version>
</dependency>
阅读 2k

我要一杯冰阔乐
疑难杂症、一起讨论

真实一贯

0 声望
2 粉丝
0 条评论

真实一贯

0 声望
2 粉丝
宣传栏