Я пытаюсь разобраться с парсером Джексона JSON и нашел хороший учебник, который объясняет маршалинг и демаршаллинг. Учебное пособие здесь
http://java.dzone.com/tips/json-processing-using-jackson
Теперь я ввел весь код и настроил геттеры и сеттеры в имени пользователя и классе пользователя. Теперь я хочу иметь возможность создавать пользовательский объект из файла JSON, как показано в руководстве, т. Е.
User user = mapper.readValue(new File("/Users/adam/Documents/JSON/user.json"), User.class);
Однако это возвращает ошибку
Исключение в потоке "main" org.codehaus.jackson.map.exc.UnrecognizedPropertyException: нераспознанное поле "firstName" (класс UserName), не помеченное как игнорируемое
в [Источник: /Users/adam/Documents/JSON/JSON.json; строка: 1, столбец: 40] (через цепочку ссылок: User ["userName"] -> UserName ["firstName"])
Я могу создать объект от пользователя, если вместо этого использую String, вот так
String userDataJSON = "{\"userId\":\"100\",\"userName\":{\"firstname\":\"K\",\"middlename\":\"Siva\",\"lastname\":\"Prasad\"},\"dob\":1300878089906}";
User user = mapper.readValue(userDataJSON, User.class);
Но если я попытаюсь
JsonFactory jfactory = new JsonFactory();
JsonParser jParser = jfactory.createJsonParser(new File(
"/Users/adam/Documents/JSON/user.json"));
User user = mapper.readValue(jParser, User.class);
Я получаю ошибку, показанную выше.
Но то же самое. Сможет ли когда-нибудь сказать мне, что я делаю неправильно? Заранее спасибо
JSON в файле:
{
"Идентификатор пользователя": "1",
"Username": {
"Имя": "Katamreddy",
"MiddleName": "Сива",
"LastName": "PrasadReddy"
},
"Д.р.": 1331113476212
}