[英]JSON parser not returning numbers
我有以下 JSON 結構:
{
"status": "Completed",
"notes": null,
"members": {
"0": {
"year": "2",
"details": {
"id": "14899975",
"anotherId": "11013306"
},
"aName": "Fred",
"amounts": {
"First": 589.48,
"Second": 1000,
"Third": 339.48
}
},
"1": {
"year": "2",
"details": {
"id": "14899976",
"anotherId": "11013306"
},
"aName": "George",
"amounts": {
"First": 222.22,
"Second": 2000,
"Third": 22.22
}
},
"2": {
"year": 1,
"details": {
"id": "14899976",
"anotherId": "11013306"
},
"aName": "Albert",
"amounts": {
"First": 333.33,
"Second": 3000,
"Third": 33.33
},
}
}
}
我正在使用 Spring RESTTemplate 和 JacksonMapping2HttpMessageConverter,以及以下結構來接收解析上述 JSON 結構的結果:
@JsonIgnoreProperties(ignoreUnknown = true)
public class Response {
private String status;
private String notes;
private Map<String,Struct1> quotes;
}
@JsonIgnoreProperties(ignoreUnknown = true)
class Struct1 {
private int year;
private Struct2 details;
private String aName;
private Struct3 amounts;
}
@JsonIgnoreProperties(ignoreUnknown = true)
class Struct2 {
private String id;
private String anotherId;
}
@JsonIgnoreProperties(ignoreUnknown = true)
class Struct3 {
private float First;
private float Second;
private float Third;
}
所有這些也有適用於所有字段的適當的 setter 和 getter。
我的問題是 Struct3 中的數字值沒有填充。我嘗試將它們設置為 float、Float、String 和 BigDecimal,結果為 null 或 0.0。
我試過在第一個字段的 setter 中放置一個斷點,希望
我錯過了什么? JSON 中的大寫字母是否會導致問題,我是否需要備用字段名稱?
原來是字段名開頭的大寫字母; 我在字段的 getter 之前的行上添加了@JsonProperty("First")
類的注釋,並將該字段重命名為first
,現在它可以工作了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.