Допустим, у меня есть объект, как этотДжексон отображения JSON на объекты
{
first: "value",
second: "value",
third: {
first: "first value third",
second: "second value third",
fourth: {
first: "second nested object",
second: "second nested object"
},
fifth: {
first: "another second nested object",
second: "another second nested object"
}
},
sixth: {
first: "value",
second: "value"
}
}
Я использую класс RestTemplate для извлечения JSON из URL, как это:
RestTemplate rest = new RestTemplate();
String result = rest.getForObject(ENDPOINT_URL, String.class);
после того, что я хотел бы, чтобы бросить строка JSON к объекту с помощью объекта JACKSON Mapper
import com.fasterxml.jackson.databind.ObjectMapper
проходящего класса сущностей в качестве второго параметра
ObjectMapper mapper = new ObjectMapper();
object = mapper.readValue(result, ExampleJson.class);
Вопрос в том, как я должен писать объект ExampleJson для обработки показанного json? Я пробовал с таким классом, но, похоже, это не сработало.
public class ExampleJson {
private String first;
private String second;
private Third third;
private Sixth sixth;
// Getters && Setters
public static class Third {
private String first;
private String second;
private Fourth fourth
private Fifth fifth
// Getters && Setters
private Fourth {
private String first;
private String second;
// Getters && Setters
}
private Fifth {
private String first;
private String second;
// Getters && Setters
}
}
public static class Sixth {
private String first;
private String second;
// Getters && Setters
}
}
Я получаю исключение вроде этого:
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:
Unrecognized field "fourth"
Является ли объект всегда в этом же формате или он может изменяться динамически? –
Внутренние классы должны быть статическими или другим способом для их создания, например, нет конструктора с нулевым аргументом или каких-либо аннотаций. http://www.cowtowncoder.com/blog/archives/2010/08/entry_411.html – StackTraceYo
Аннотировать класс, который вы десериализируете с помощью '@JsonIgnoreProperties (ignoreUnknown = true)' – teppic