我正在编写一个POST API,我需要在其中形成一个有效负载,
{
"questions":{
"preferredAnswer":{
answer[0]:"my first answer",
answer[1]:"second answer"
}
}
这需要映射为java对象。我的问题是,有没有办法将这个json映射到下面的类?或者我可以将答案变量声明为String answer[0]; String answer[1];
(不允许使用此语法)
public Class Questions {
PreferredAnswer preferredAnswer;
}
public Class PreferredAnswer {
String[] answers;
}
我怎么能映射json?
您不能使用方括号声明变量,但是您可以使用括号括起JSON属性并使用@JsonProperty
注释将其映射如下
public Class PreferredAnswer {
@JsonProperty("answer[0]")
private String answer0;
@JsonProperty("answer[1]")
private String answer1;
}
注意:您需要为这些私有属性提供setter / getter。
这会将您的JSON映射到java对象,反之亦然。
Java没有像JavaScript那样支持本机JSON。您可以使用库(如GSON)来帮助您,或者您可以使用Java方式,这将涉及使用比此更多的代码构建它。
但Java本身并不像JS那样从JSON转换为对象。