下面是将JSON字符串转换为JAVA对象的方法,我们将使用转换器和 Jackson objectmapper 等外部库来解析我们的对象
确保你的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"
}
}
一个示例类代码:
/**
* 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 https://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对象中的不同。【告诉框架解析时候进行映射关联的字段】
假设您打开了自己喜欢的IDE,那么下一步就是导入Jackson包并创建从该工具返回的类。
您将需要导入三个包:
这个 "jackson-annotations-2.11.1"用于添加“JsonProperty”属性。“jackson-databind-2.11.1”用于创建ObjectMapper类,它将帮助我们读取JSON并将其映射到根对象。
然后我们创建类并添加所需的导入:
在这里,我们只是创建一个ObjectMapper类并调用“readValue”方法。注意,我从文件系统读取JSON字符串,在您的例子中,您可能从API或客户端返回一个JSON字符串。
然后通过执行“Root.class”操作来提供“根”类的类对象。
在调试时,你会注意到我们的对象已经被相应地填充: