2016-11-13 2 views
0

У меня есть Android-приложение, которое использует Джексон десериализации данных и сталкиваются проблемы в создании POJO для этой JSon строки:Android, Deserialize JSON массив, которые имеют различные типы с использованием Джексона

{ 
    "response": [{ 
     "view": "ticker", 
     "items": [] 
    }, { 
     "view": "note", 
     "note": "This is a note" 
    }, { 
     "wn": "bla", 
     "sd": "bla bla", 
     "tf": 28, 
     "rh": 22, 
     "ws": 9, 
     "ti": "14:00", 
     "view": "hbhi" 
    }] 
} 

создать следующее POJOs:

TickerModel.java

public class TickerModel implements Serializable { 

@JsonProperty("view") 
private String view ; 

@JsonProperty("items") 
private String items; 


public String getView() { 
    return view; 
} 

public void setView(String view) { 
    this.view = view; 
} 

public String getItems() { 
    return items; 
} 

public void setItems(String items) { 
    this.items = items; 
} 

}

NoteModel.java

public class NoteModel implements Serializable { 

@JsonProperty("view") 
private String view ; 

@JsonProperty("note") 
private String note; 

public String getView() { 
    return view; 
} 

public void setView(String view) { 
    this.view = view; 
} 

public String getNote() { 
    return note; 
} 

public void setNote(String note) { 
    this.note = note; 
} 

}

какие-либо идеи о том, как сделать это десериализации JSON, используя Джексона?

ответ

0

первая проверка json используя this.

и создавать POJO классы, использующие this или this

0

Нет необходимости создавать два отдельных Pojo, вы можете иметь POJO, как показано ниже -

public class Response { 

@JsonProperty("view") 
private String view; 
@JsonProperty("items") 
private List<Object> items = new ArrayList<Object>(); 
@JsonProperty("note") 
private String note; 
@JsonProperty("wn") 
private String wn; 
@JsonProperty("sd") 
private String sd; 
@JsonProperty("tf") 
private Integer tf; 
@JsonProperty("rh") 
private Integer rh; 
@JsonProperty("ws") 
private Integer ws; 
@JsonProperty("ti") 
private String ti; 
//setters //getters 
} 

Примечание: Поскольку элементов является массивом в вашем JSON , вы должны сопоставить его с массивом-списком объектов типа. Также вы можете получить pojo's craeted online, если у вас есть данные json - http://www.jsonschema2pojo.org/

Смежные вопросы