我想知道如何进行这种转换。
我通常像这样从json转换为Java对象:
{
"detail" :
{
"student": {
"name" : "John Doe",
"age" : 31
}
}
}
因此,我可以轻松创建一个名为Student的Java对象,并执行类似的操作
public class Student {
String name;
int age;
public Student(@JsonProperty("name") String name, @JsonProperty("age") int age){
this.name = name;
this.age = age;
}
}
但是现在我正面临这个问题...
我正在收到这样的JSON:
{
"detail" :
{
"123456789": {
"name" : "John Doe",
"age" : 31
}
}
}
在这种情况下, 123456789 是“学生” ...
无论如何,我是否可以设计一个对象以将 JSON 解析为我的 java对象?我不知道该怎么做...
答案 0 :(得分:3)
这个小例子可能有帮助吗?
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.Map;
public class TestJson {
public static void main(String[] args) throws IOException {
String json = " {\n" +
" \"123456789\": {\n" +
" \"name\" : \"John Doe\",\n" +
" \"age\" : 31\n" +
" }\n" +
" }";
ObjectMapper objectMapper = new ObjectMapper();
Map<Long, Student> map = objectMapper.readValue(json, new TypeReference<Map<Long, Student>>() {
});
}
public static class Student {
private String name;
private int age;
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
}