将 json 对象映射到 java 对象(但我的 json 对象变量的首字母大写)
Map json object to java object (but my json object variables has first letter capital)
我有第三方 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 对象 class 中,所以当我尝试使用 ObjectMapper
时,它不起作用.
MyJavaObject object = new ObjectMapper().readValue(jsonObject, MyJavaObject.class);
任何建议或帮助都会很棒。
您需要将 Jackson 的默认命名策略设置为 UpperCamelCaseStrategy
,如下所示:
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.UpperCamelCaseStrategy);
MyJavaObject object = objectMapper.readValue(jsonObject, MyJavaObject.class);
对于属性URL
、FWStatusCode
和FWMessage
,不遵循驼峰、蛇形或任何其他命名策略,您将需要使用@JsonProperty
在你的 class 属性上,以便 Jackson 知道如何处理它们。只需用相应的 @JsonProperty
注释 class 属性,它就会起作用:
@JsonProperty("URL")
@JsonProperty("FWStatusCode")
@JsonProperty("FWMessage")
我有第三方 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 对象 class 中,所以当我尝试使用 ObjectMapper
时,它不起作用.
MyJavaObject object = new ObjectMapper().readValue(jsonObject, MyJavaObject.class);
任何建议或帮助都会很棒。
您需要将 Jackson 的默认命名策略设置为 UpperCamelCaseStrategy
,如下所示:
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.UpperCamelCaseStrategy);
MyJavaObject object = objectMapper.readValue(jsonObject, MyJavaObject.class);
对于属性URL
、FWStatusCode
和FWMessage
,不遵循驼峰、蛇形或任何其他命名策略,您将需要使用@JsonProperty
在你的 class 属性上,以便 Jackson 知道如何处理它们。只需用相应的 @JsonProperty
注释 class 属性,它就会起作用:
@JsonProperty("URL")
@JsonProperty("FWStatusCode")
@JsonProperty("FWMessage")