这个Json
{
"age":"23",
"name":"srinivas",
"blog":"A",
"messages":["msg1","msg2","msg3"]
}
我想将json转换为java类,如此类和类使用:
public class A
{
private String name;
private String age;
private String blog;
private String[] messages;
public String getName ()
{
return name;
}
public void setName (String name)
{
this.name = name;
}
public String getAge ()
{
return age;
}
public void setAge (String age)
{
this.age = age;
}
public String getBlog ()
{
return blog;
}
public void setBlog (String blog)
{
this.blog = blog;
}
}
答案 0 :(得分:0)
没有。你不能从你的json自动为你创建类。
然而,您可能需要以下相关内容:
您需要link
摘自链接,下面是示例代码:
String carJson =
"{ \"brand\" : \"Mercedes\", \"doors\" : 5," +
" \"owners\" : [\"John\", \"Jack\", \"Jill\"]," +
" \"nestedObject\" : { \"field\" : \"value\" } }";
ObjectMapper objectMapper = new ObjectMapper();
try {
JsonNode node = objectMapper.readValue(carJson, JsonNode.class);
JsonNode brandNode = node.get("brand");
String brand = brandNode.asText();
System.out.println("brand = " + brand);
JsonNode doorsNode = node.get("doors");
int doors = doorsNode.asInt();
System.out.println("doors = " + doors);
JsonNode array = node.get("owners");
JsonNode jsonNode = array.get(0);
String john = jsonNode.asText();
System.out.println("john = " + john);
JsonNode child = node.get("nestedObject");
JsonNode childField = child.get("field");
String field = childField.asText();
System.out.println("field = " + field);
} catch (IOException e) {
e.printStackTrace();
}
答案 1 :(得分:0)
技术上可以在运行时创建一个类:请参阅How to create a class dynamically in java或Creating classes dynamically with Java。但是,如果您的代码想以某种方式使用A
,则需要在编译期间使用它。如果您的代码不需要使用A
,为什么要创建它?您可以在编译期间实现某些接口/扩展 可用的类,但在您的情况下,没有合理的通用接口,您只能使用反射访问它。
更合理的替代方法是在构建过程中从已知的JSON示例(或更好地,从某些模式描述)生成类。同样,有很多方法可以做到这一点,你应该寻找一个符合你需求的方法。