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

问题描述 投票:-2回答:2

我正在编写一个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?

java json rest api-design objectmapper
2个回答
0
投票

您不能使用方括号声明变量,但是您可以使用括号括起JSON属性并使用@JsonProperty注释将其映射如下

public Class PreferredAnswer {
   @JsonProperty("answer[0]") 
   private String answer0;

   @JsonProperty("answer[1]") 
   private String answer1;
}

注意:您需要为这些私有属性提供setter / getter。

这会将您的JSON映射到java对象,反之亦然。


-1
投票

Java没有像JavaScript那样支持本机JSON。您可以使用库(如GSON)来帮助您,或者您可以使用Java方式,这将涉及使用比此更多的代码构建它。

但Java本身并不像JS那样从JSON转换为对象。

© www.soinside.com 2019 - 2024. All rights reserved.