问题
Here is my Json response
"postedevent": [
{
"status": "true",
"event_id": "800",
"num_of_image_event": "0",
"title": "Testy",
"photo": "http://54.200.110.49/checkplanner/img/upload/21310059819profile_image_1409303464798.png",
"event_date": "2014-08-29",
"fullDate": "Friday - August 29, 2014",
"event_from": "12:00AM",
"event_to": "12:15AM",
"city": "Ahm",
"state": "CA",
"member_id": "471",
"username": "Krishna Mohan",
"pencil": "yes",
"attend": "yes",
"company": "Development"
}
]
this is java class to get java objs from json response
public class PostedEvent {
String status;
int event_id;
int num_of_image_event;
String title;
String photo;
String event_date;
String fullDate;
String event_from;
String event_to;
String city;
String state;
String member_id;
String username;
String pencil;
String attend;
String company;
}
public class PostedEvnetsList
{
ArrayList<PostedEvent> postedevent;
}
And I am parsing in this way
InputStream is = WebResponse.getResponse(url);
ObjectMapper mapper = new ObjectMapper();
PostedEvnetsList mList = null;
mList = mapper.readValue(is,PostedEvnetsList.class);
eventList = mList.postedevent;
I am getting following parse exception
jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "status" (Class com.example.jsonproforexam.PostedEvent), not marked as ignorable
I have declared same fields as in json response then why I am geting this exception Please help
回答1:
You can use the JsonProperty
annotation to specify the json key
Ex:
public class PostedEvent {
@JsonProperty("status")
String status;
@JsonProperty("event_id")
String eventId;
....
....
If you have missed some fields from json in your entity class, you can use @JsonIgnoreProperties
annotation to ignore the unknown fields.
@JsonIgnoreProperties(ignoreUnknown = true)
public class PostedEvent {
...
回答2:
Your fields of PostedEvent
and the PostedEvent
field of PostedEventsList
are not accessible.
You must set them as public
(not recommended) or provide public getters and setters for them POJO-style.
Then Jackson will be able to de-serialize and the error will go away.
来源:https://stackoverflow.com/questions/25545984/how-to-use-jackson-objectmapper-to-parse-json-response-to-java-objects