【问题标题】:ObjectMapper can't map the variables of inner classObjectMapper 无法映射内部类的变量
【发布时间】:2017-05-31 10:17:22
【问题描述】:

ObjectMapper 映射器 = 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)

公共类 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;
}

}

景点详情模型:

@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;
}

}

地址数据景点:

@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;
}

}

输入景点:

@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 中的字符串响应显示正确响应,tractionMainResponse 中的字符串响应显示成功但无法映射吸引细节模型,返回 null。

【问题讨论】:

    标签: java android objectmapper


    【解决方案1】:

    这是关于 Jackson ObjectMapper 的吗?是否可以创建一个更小的示例,以便更轻松地给出解决方案。

    【讨论】:

    • 是的,它只是 Jackson objectMapper。
    • 如果你看到我做的任何错误。请告诉我。如果不起作用,那么我将尝试给您举一个小例子。 @jvwilge
    猜你喜欢
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    相关资源
    最近更新 更多