我想将下面的JSON结构转换为java对象,Annotation bases。
pojo java类结构是什么?
{
"Data1":{
"Name":"abc",
"Number":2
}
}
Data1可以是任何字符串,就像如果它第一次作为Data1来的话,下一次它可以是"1";xyz";。
我们如何使用fasterxmljson注释进行转换?
class Node {
public String name;
public int number
}
class ConvertedPojo {
public Map<String, Node> attributes;
}
由于Data1可以是任何字符串,您需要一个映射,该映射将所有不同的字符串存储为关键字,并将值存储为json对象
类结构将为:
public class Data1{
@JsonProperty("Name")
private String name;
@JsonProperty("Number")
private int number;
public String getName() {
return name;
}
public void setName(String name) {
name = name;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
number = number;
}
}
public class Data {
@JsonProperty("Data1")
Object data1;
public Object getData1() {
return data1;
}
public void setData1(Object data1) {
this.data1 = data1;
}
}
注意变量命名约定。
测试代码:
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
Data data1 = mapper.readValue("{"Data1":{"Name":"abc","Number":2}}", Data.class);
System.out.println(mapper.writeValueAsString(data1));//{"Data1":{"Name":"abc","Number":2}}
Data data2 = mapper.readValue("{"Data1":"data value"}", Data.class);
System.out.println(mapper.writeValueAsString(data2));//{"Data1":"data value"}
}