Mapear objeto JSON a objeto Java (pero las variables de mi objeto JSON tienen la primera letra en mayúscula)
Tengo una API de terceros que devuelve una respuesta como un objeto JSON cuyas variables tienen la primera letra en mayúscula
Mi objeto JSON se ve así:
json
{
“ApiStatus”:{
“ApiStatusCode”:5000,
“ApiMessage”:”OK”,
“FWStatusCode”:0,
“FWMessage”:””
},
“Encounter”:{
“EncounterId”:”hgasfdjsdgkf”,
“ApiLinks”:[
{
“Title”:”Self”,
“Description”:”API de referencia propia”,
“ResourceName”:”self”,
“HttpMethods”:[
“GET”,
“DELETE”
],
“URL”:”http://www.google.com/api/v2/test/test2/hchvjh”
},
{
“Title”:”Transmitir un informe”,
“Description”:”Crear un informe y transmitirlo.”,
“ResourceName”:”transmitter”,
“HttpMethods”:[
“POST”
],
“URL”:”http://www.google.com/api/v2/test3/test3/jydgfkshd/transmitter”
}
]
}
}
Como puedes ver arriba, la primera letra de las variables está en mayúscula y necesito asignar eso en mi clase de objeto Java, así que cuando intenté usar ObjectMapper, no funcionó.
MyJavaObject object = new ObjectMapper().readValue(jsonObject, MyJavaObject.class);
Cualquier sugerencia o ayuda sería genial.
davy.ai
Puedes usar la anotación
@JsonProperty
de la bibliotecaJackson
para mapear los nombres de los campos del objeto JSON con los nombres de las variables de tu objeto Java. Debes anotar las variables de tu clase Java con@JsonProperty
y dar el nombre del campo JSON como parámetro de la anotación.Aquí tienes un ejemplo de cómo puedes modificar tu clase Java:
En este código de ejemplo, la anotación
@JsonProperty
se utiliza para mapear el campo JSONApiStatus
con la variable JavaapiStatus
, y el campo JSONEncounter
con la variable Javaencounter
.Por lo tanto, solo necesitas añadir esta anotación a todas las variables que tengan nombres diferentes en tu objeto JSON que en tu objeto Java.
Después de eso, puedes usar
ObjectMapper
para mapear el objeto JSON a tu objeto Java:Ahora,
ObjectMapper
debería poder mapear los campos del objeto JSON a las variables del objeto Java.