我有一個第三方 API,它以 JSON 物件的形式提供回應,其變數的首字母大寫我的 JSON 物件如下所示:
{
"ApiStatus":{
"ApiStatusCode":5000,
"ApiMessage":"OK",
"FWStatusCode":0,
"FWMessage":""
},
"Encounter":{
"EncounterId":"hgasfdjsdgkf",
"ApiLinks":[
{
"Title":"Self",
"Description":"Self referencing api",
"ResourceName":"self",
"HttpMethods":[
"GET",
"DELETE"
],
"URL":"http://www.google.com/api/v2/test/test2/hchvjh"
},
{
"Title":"Transmit a Report",
"Description":"Create a report and transmit it.",
"ResourceName":"transmitter",
"HttpMethods":[
"POST"
],
"URL":"http://www.google.com/api/v2/test3/test3/jydgfkshd/transmitter"
}
]
}
}
正如您在上面看到的,變數的第一個字母是大寫的,需要將它映射到我的 java 物件類中,所以當我嘗試使用時ObjectMapper,但它不起作用。
MyJavaObject object = new ObjectMapper().readValue(jsonObject, MyJavaObject.class);
任何建議或幫助都會很棒。
uj5u.com熱心網友回復:
您需要將 Jackson 的默認命名策略設定UpperCamelCaseStrategy為如下:
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.UpperCamelCaseStrategy);
MyJavaObject object = objectMapper.readValue(jsonObject, MyJavaObject.class);
對于不遵循駝峰命名法、蛇形命名法或任何其他命名策略的屬性URL,FWStatusCode和FWMessage,您需要@JsonProperty在類屬性上使用,以便 Jackson 知道如何處理它們。只需用各自的注釋類屬性,@JsonProperty它就會起作用:
@JsonProperty("URL")@JsonProperty("FWStatusCode")@JsonProperty("FWMessage")
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/385844.html
