2013-03-08 3 views
0

я получаю следующие данные из PHP-скрипта ..разборе массив в gson в Java

{"errorno":"fe_200","message":"successful","univ":[{"univ_id":"1","univ_name":"abc","slug":"uptu","thumb":"http:\/\/www.fs.com\/notes\/img\/uptu.gif","table_prefix":"uptu"},{"univ_id":"2","univ_name":"def","slug":"gtu","thumb":"http:\/\/www.fs.com\/notes\/img\/gtu.gif","table_prefix":"gtu"}, 
    {"univ_id":"3","univ_name":"jvc university","slug":"jntu","thumb":"http:\/\/www.fs.com\/notes\/img\/jntu.gif","table_prefix":"jntu"} 

    }]} 

я хочу, чтобы разобрать это с помощью GSON.

я написал следующий класс:

class WebsiteResults { 

    public WebsiteResults() {} 

    private String errorno; 
    private String message; 
    private List<univ> results; 
    // other attributes 

    public String getErrorNo() { 
    return errorno; 
    } 
    public String getMessage() { 
     return message; 
     } 
    public List<univ> getResults() { return results; } 
    public void setErrorNo(String errorno) { 
     this.errorno = errorno; 
     } 
    public void setMessage(String message) { 
    this.message = message; 
    } 

    public void setResults(List<univ> results) { this.results = results; } 
    public String toString() { return "Results[" + results + "]";} 


    static class univ { 
     private String univ_id; 
     private String univ_name; 
     public String getUnivID() { return univ_id; } 
     public String getUnivName() { return univ_name; } 
     public void setUnivID(String univ_id) { this.univ_id = univ_id; } 
     public void setUnivName(String univ_name) { this.univ_name = univ_name; } 
     public String toString() { return "Result[id:" + univ_id +",title:" + univ_name + "]"; } 
    } 

} 

я хочу, чтобы получить массив univ_id и univ_name.

, но я получаю результаты = null. может кто-то помочь объяснить, что я сделал неправильно.

WebsiteResults results = new Gson().fromJson(reader, WebsiteResults.class); 
String errno = results.getErrorNo(); 
String result = results.toString(); 
+0

errno я получаю штраф – Sunny

ответ

0

Название вашей области в вашем WebsiteResults классе должен соответствовать JSON или имеют @SerializedName аннотацию сказать Gson, что это такое:

Изменение:

private List<univ> results; 

к:

private List<univ> univ; 

или:

@SerializedName("univ") 
private List<univ> results; 

Тот факт, что вы использовали строчное имя для своего класса univ, также вызывает недоумение; не делайте этого. Имена классов должны начинаться с прописных букв.

+0

спасибо большое Брайан .. :) – Sunny

+0

Я думал, что имя класса должно быть таким же, как указано в формате JSON .. снова. – Sunny

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