Я пытаюсь разобраться с парсером Jackson 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" (имя пользователя класса), не помеченное как игнорируемое в [Источник: /Users/adam/Documents/JSON/JSON.json; строка: 1, столбец: 40] (через цепочку ссылок: User["userName"]->UserName["firstName"])
Я могу создать объект от пользователя, если вместо этого использую строку, например
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 в файле
{ "userId": "1", "userName": { "firstName": "Katamreddy", "middleName": "Siva", "lastName": "PrasadReddy" }, "dob": 1331113476212 }
ObjectMapper
напрямую; это немного упрощает ваш код. - person StaxMan   schedule 07.03.2012