我可以用方括号声明一个变量吗?

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 对象,反之亦然。