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