Я вызываю внешний веб-сервис, чтобы получить объект как json. Этот объект имеет свойство «значение», которое иногда является строкой, а иногда и массивом строк.Свойства java и json jackson - разные типы во время выполнения
public class MyClass {
// ... other variables
private String value;
public String getValue() {
return value;
}
@JsonProperty("value")
public void setValue(String value) {
this.value = value;
}
}
В настоящее время я получаю ошибку org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.lang.String out of START_ARRAY token
жалуясь этой области. Мне было интересно, может ли кто-нибудь дать мне подсказку о том, что является правильным способом определения value
в моем классе.
Это часть образца JSON, что мне приходится иметь дело с:
{
"id": 12016907001,
"type": "Create",
"value": "normal",
"field_name": "priority"
},
{
"id": 12016907011,
"type": "Create",
"value": [
"sample",
"another"
],
"field_name": "tags"
}
Спасибо.
- EDIT
Я изменил тип значения в Object и решить мою проблему. Тем не менее, мне все еще интересно, есть ли лучший способ справиться с этим делом.
Есть ли у вас какой-либо контроль над внешней веб-службой? –
Не к сожалению – Abbas