将动态json转换为具有动态字符串值的java对象.没有键值json结构



我想将下面的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"}
}

最新更新