【发布时间】:2021-02-11 03:09:53
【问题描述】:
我正在尝试获取一些看起来像这样的 JSON(来自 AlphaVantage):
{
"Symbol": "IBM",
"AssetType": "Common Stock",
"Name": "International Business Machines Corporation",
... more properties
}
并使用 Jackson (& Ebeans) 解析它:
ObjectMapper objectMapper = new ObjectMapper();
String json = response.body().string();
Stock stock = objectMapper.readValue(json, Stock.class);
stock.save();
我的 Stock 类如下所示:
@Entity
@Table(name = "stock")
public class Stock extends Model {
@Id
private Long id;
private String Symbol;
private String AssetType;
private String Name;
... other properties
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public String getSymbol() {
return this.Symbol;
}
public void setSymbol(String Symbol) {
this.Symbol = Symbol;
}
... other setters/getters
}
相反,我收到以下错误:
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "Symbol" (class com.myprojectname.Stock), not marked as ignorable (60 known properties: "ebitda", "sharesOutstanding", "bookValue", ....more fields
为什么 Jackson 在连接到我的 Stock 课程时遇到问题?如何将 JSON 中的 Symbol 连接到 Stock 类中的 Symbol?
编辑:如果我将符号更改为小写,我会收到相同的错误消息:
@Entity
@Table(name = "stock")
public class Stock extends Model {
@Id
private Long id;
private String symbol;
public String getSymbol() {
return this.symbol;
}
public void setSymbol(String symbol) {
this.symbol = symbol;
}
}
【问题讨论】:
-
这能回答你的问题吗? Jackson JSON field mapping capitalization?
-
这绝对让我走上了正确的道路,但是当我在 Stock 类变量中将 Symbol 更改为 symbol 时,我仍然得到:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "符号”