有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java反序列化得到的空字符串应具有值

我遇到了一个很奇怪的问题,请原谅,如果这成为一个注意力问题,但我现在正在喝咖啡

我有一个Json:

[  
   {  
      "address":"RS 239, Km 18,2 nº 4631 - Novo Hamburgo",
      "closingTime":"06:00",
      "description":"Curta como quiser.",
      "distance":"6,328.35 km",
      "iconUrl":"~\/Images\/Establishment\/Bar Alternativo.png",
      "idEstablishment":5,
      "name":"Bar Alternativo",
      "openingTime":"22:30",
      "phone":"(51) 3778-1820",
      "type":"Casa Noturna \/ Balada"
   }
]

当我尝试使用以下代码反序列化此代码时:

public static ArrayList<Establishment> serializeEstablishmentList(String json) {
    ObjectMapper mapper = new ObjectMapper();

    ArrayList<Establishment> establishments = null;

    try {
        establishments = mapper.readValue(json, new TypeReference<List<Establishment>>(){});
    } catch (IOException e) {
        e.printStackTrace();
    }

    return establishments;
}

Mydistance属性未从调试器获取其值,映像: debugging

下面是我的课程:

public class Establishment {

    private long idEstablishment;
    private Drawable icon;
    private String iconUrl;
    private String name;
    private String type;
    private boolean workingStatus;
    private String openingTime;
    private String closingTime;
    private String distance;
    private String phone;
    private String description;
    private String address;

    public Establishment() {
    }

    public Establishment(long idEstablishment, Drawable icon, String iconUrl, String name, String type, boolean workingStatus, String openingTime, String closingTime, String distance, String phone, String description, String address) {
        this.idEstablishment = idEstablishment;
        this.icon = icon;
        this.iconUrl = iconUrl;
        this.name = name;
        this.type = type;
        this.workingStatus = workingStatus;
        this.openingTime = openingTime;
        this.closingTime = closingTime;
        this.distance = distance;
        this.phone = phone;
        this.description = description;
        this.address = address;
    }

    public Establishment(long id, Drawable icon, String name, boolean workingStatus, String openingTime,
                         String closingTime, String distance) {
        this.idEstablishment = id;
        this.icon = icon;
        this.name = name;
        this.workingStatus = workingStatus;
        this.openingTime = openingTime;
        this.closingTime = closingTime;
        this.distance = distance;
    }

    public long getIdEstablishment() {
        return idEstablishment;
    }

    public void setIdEstablishment(long idEstablishment) {
        this.idEstablishment = idEstablishment;
    }

    public Drawable getIcon() {
        return icon;
    }

    public void setIcon(Drawable icon) {
        this.icon = icon;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public boolean getWorkingStatus() {
        return workingStatus;
    }

    public String getWorkingStatusLabel(){
        return workingStatus ? "Aberto" : "Fechado";
    }

    public void setWorkingStatus(boolean workingStatus) {
        this.workingStatus = workingStatus;
    }

    public String getOpeningTime() {
        return openingTime;
    }

    public void setOpeningTime(String openingTime) {
        this.openingTime = openingTime;
    }

    public String getClosingTime() {
        return closingTime;
    }

    public void setClosingTime(String closingTime) {
        this.closingTime = closingTime;
    }

    public String getDistance() {
        return distance;
    }

    public void setDistance(String distance) {
        this.distance = this.distance;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public boolean isWorkingStatus() {
        return workingStatus;
    }

    public String getIconUrl() {
        return iconUrl;
    }

    public void setIconUrl(String iconUrl) {
        this.iconUrl = iconUrl;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

有什么想法吗


共 (1) 个答案

  1. # 1 楼答案

    您的setter方法错误:

    public void setDistance(String distance) {
        this.distance = this.distance;
    }
    

    这应该是:

    public void setDistance(String distance) {
        this.distance = distance;
    }