前段时间遇到一个问题,就是当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>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。