ObjectMapper不能映射内部类的变量

时间:2017-05-31 10:17:23

标签: java android objectmapper

ObjectMapper mapper = new ObjectMapper();

    try {
        attractionMainResponse = mapper.readValue(response,AttractionMainResponse.class);
    } catch(IOException io) {
        showToast("Something went wrong");
        FirebaseCrash.log(io.toString());
        finish();
    }

AttractionMainResponse:

@JsonIgnoreProperties(ignoreUnknown = true)

public class AttractionMainResponse {

private AttractionDetailModel Attraction_Info;
private String response;

public AttractionMainResponse() {
    Attraction_Info = null;
    response =null;
}

public AttractionMainResponse(AttractionDetailModel aa,String ab) {
    Attraction_Info = aa;
    response = ab;
}

public AttractionDetailModel getAttraction_Info() {
    return Attraction_Info;
}

public void setAttraction_Info(AttractionDetailModel attraction_Info) {
    Attraction_Info = attraction_Info;
}

public String getResponse() {
    return response;
}

public void setResponse(String response) {
    this.response = response;
}

}

AttractionDetailModel:

@JsonIgnoreProperties(ignoreUnknown = true) 公共类AttractionDetailModel {

private AddressDataAttraction address_data;
private List<Image> Images;
private TypesInAttraction Type;
private String architect;
private String architectural_style;
private int city_id;
private String founder;
private String description;
private int id;
private String name;
private String height;
private String opened_since;
private String popularity;
private String timings;
private String visitors;
private String profile_image_url;
public AttractionDetailModel() {
    address_data = null;
    architect = null;
    architectural_style = null;
    city_id=-1;
    founder = null;
    description = null;
    id=-1;
    name=null;
    height=null;
    opened_since=null;
    popularity = null;
    timings=null;
    visitors=null;
    Images = null;
    Type=null;
    profile_image_url=null;
}

public AttractionDetailModel(AddressDataAttraction address_data, List<Image> images, TypesInAttraction type, String architect, String architectural_style, int city_id, String founder, String description, int id, String name, String height, String opened_since, String popularity, String timings, String visitors, String profile_image_url) {
    this.address_data = address_data;
    Images = images;
    Type = type;
    this.architect = architect;
    this.architectural_style = architectural_style;
    this.city_id = city_id;
    this.founder = founder;
    this.description = description;
    this.id = id;
    this.name = name;
    this.height = height;
    this.opened_since = opened_since;
    this.popularity = popularity;
    this.timings = timings;
    this.visitors = visitors;
    this.profile_image_url = profile_image_url;
}

public String getProfile_image_url() {
    return profile_image_url;
}
public void setProfile_image_url(String profile_image_url) {
    this.profile_image_url = profile_image_url;
}
public AddressDataAttraction getAddress_data() {
    return address_data;
}
public void setAddress_data(AddressDataAttraction address_data) {
    this.address_data = address_data;
}
public List<Image> getImages() {
    return Images;
}
public void setImages(List<Image> images) {
    Images = images;
}
public TypesInAttraction getType() {
    return Type;
}
public void setType(TypesInAttraction type) {
    Type = type;
}
public String getArchitect() {
    return architect;
}
public void setArchitect(String architect) {
    this.architect = architect;
}
public String getArchitectural_style() {
    return architectural_style;
}
public void setArchitectural_style(String architectural_style) {
    this.architectural_style = architectural_style;
}
public int getCity_id() {
    return city_id;
}
public void setCity_id(int city_id) {
    this.city_id = city_id;
}
public String getFounder() {
    return founder;
}
public void setFounder(String founder) {
    this.founder = founder;
}
public String getDescription() {
    return description;
}
public void setDescription(String description) {
    this.description = description;
}
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getHeight() {
    return height;
}
public void setHeight(String height) {
    this.height = height;
}
public String getOpened_since() {
    return opened_since;
}
public void setOpened_since(String opened_since) {
    this.opened_since = opened_since;
}
public String getPopularity() {
    return popularity;
}
public void setPopularity(String popularity) {
    this.popularity = popularity;
}
public String getTimings() {
    return timings;
}
public void setTimings(String timings) {
    this.timings = timings;
}
public String getVisitors() {
    return visitors;
}
public void setVisitors(String visitors) {
    this.visitors = visitors;
}

}

AddressDataAttractions:

@JsonIgnoreProperties(ignoreUnknown = true)

公共类AddressDataAttraction {

private String address;
private String city;
private String country;
private String landmark;
private float latitude;
private float longitude;
private String pincode;
private String state;
public AddressDataAttraction() {
    address=null;
    city=null;
    country=null;
    landmark=null;
    latitude=-1;
    longitude=-1;
    pincode=null;
    state=null;
}
public AddressDataAttraction(String address, String city, String country, String landmark, float latitude, float longitude, String pincode, String state) {
    this.address = address;
    this.city = city;
    this.country = country;
    this.landmark = landmark;
    this.latitude = latitude;
    this.longitude = longitude;
    this.pincode = pincode;
    this.state = state;
}
public String getAddress() {
    return address;
}
public void setAddress(String address) {
    this.address = address;
}
public String getCity() {
    return city;
}
public void setCity(String city) {
    this.city = city;
}
public String getCountry() {
    return country;
}
public void setCountry(String country) {
    this.country = country;
}
public String getLandmark() {
    return landmark;
}
public void setLandmark(String landmark) {
    this.landmark = landmark;
}
public float getLatitude() {
    return latitude;
}
public void setLatitude(float latitude) {
    this.latitude = latitude;
}
public float getLongitude() {
    return longitude;
}
public void setLongitude(float longitude) {
    this.longitude = longitude;
}
public String getPincode() {
    return pincode;
}
public void setPincode(String pincode) {
    this.pincode = pincode;
}
public String getState() {
    return state;
}
public void setState(String state) {
    this.state = state;
}

}

TypeInAttraction:

@JsonIgnoreProperties(ignoreUnknown = true) 公共类TypesInAttraction {

private String type;
private int id ;
public TypesInAttraction() {
    type=null;
    id=-1;
}
public TypesInAttraction(String type, int id) {
    this.type = type;
    this.id = id;
}
public String getType() {
    return type;
}
public void setType(String type) {
    this.type = type;
}
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}

}

在调试模式下,objectMapper中的字符串响应显示正确的响应,attractionMainResponse中的字符串响应成功但不能映射attractionDetailModel,给出null。

1 个答案:

答案 0 :(得分:0)

这是关于Jackson ObjectMapper的吗?是否可以创建一个更小的示例,以便更容易提供解决方案。