下面是将JSON字符串转换为JAVA对象的方法,我们将使用转换器和 Jackson objectmapper 等外部库来解析我们的对象
1. 复制并粘贴您的JSON到代码编辑器中,并单击“生成类”
确保你的JSON对象格式正确且没有被转义。
注意,我们将JSON最外层生成的类名称默认JsonRootBean可以通过 Class 这个生成属性进行修改
注意,生成的包默认名称为com.lzltool.pojo可以通过 Package 这个生成属性进行修改
这个是一个示例JSON,我们在下面的步骤中使用它:
{
"Test": {
"id": 4,
"userid": "用户Id",
"object": {
"prop1": 1,
"prop2": "test"
},
"created_at": "2012-06-02 23:33:90",
"user_list": [
{
"id": "2",
"name": "测试1"
},
{
"id": "6",
"name": "测试2"
}
]
},
"Test2": {
"Prop2": "值1"
}
}
2.当生成完成后,在网页上查看生成的JAVA类代码结果,或者单击“下载代码”这将把生成的JAVA类代码打包成一个zip格式的压缩包,下载到计算机本地
一个示例类代码:
/**
* Copyright 2020 lzltool.com
*/
package com.lzltool.pojo;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
/**
* Auto-generated: 2020-08-23 17:49:24
*
* @author lzltool.com
* @website http://www.lzltool.com/JsonToJava
*/
public class Test2 {
@JsonProperty("Prop2")
private String prop2;
public void setProp2(String prop2) {
this.prop2 = prop2;
}
public String getProp2() {
return this.prop2;
}
}
你会注意到这里有JsonProperty在JSON对象中包含原始属性名称的字段上的属性。这是为了告诉Jackson, java类中的这个字段的名称与JSON对象中的不同。【告诉框架解析时候进行映射关联的字段】
3.导入 Jackson libraries
假设您打开了自己喜欢的IDE,那么下一步就是导入Jackson包并创建从该工具返回的类。
您将需要导入三个包:
jackson-core-2.11.1
jackson-databind-2.11.1
jackson-annotations-2.11.1
这个 "jackson-annotations-2.11.1"用于添加“JsonProperty”属性。“jackson-databind-2.11.1”用于创建ObjectMapper类,它将帮助我们读取JSON并将其映射到根对象。
4. 创建POJO类来映射JSON字符串
然后我们创建类并添加所需的导入:
5. 创建ObjectMapper类并将其反序列化为根类
在这里,我们只是创建一个ObjectMapper类并调用“readValue”方法。注意,我从文件系统读取JSON字符串,在您的例子中,您可能从API或客户端返回一个JSON字符串。
然后通过执行“Root.class”操作来提供“根”类的类对象。
在调试时,你会注意到我们的对象已经被相应地填充: