2011-03-31 86 views
1

我用Gson解析了一些东西,但是Gson只识别json对象和数组。但我有这样的事情:你知道如何解析这个吗?

"results":[ 
    { 
     "nyt_movie_id":135855, 
     "display_title":"Big Night", 
     "sort_name":"Big Night", 
     "mpaa_rating":"R", 
     "critics_pick":1, 
     "thousand_best":"1", 
     "byline":"Janet Maslin", 
     "headline":"", 
     "capsule_review":"Restaurateur brothers stake all on one dinner. Succulent comedy.", 
     "summary_short":"", 
     "publication_date":"1996-03-29", 
     "opening_date":"1996-09-20", 
     "dvd_release_date":"1998-04-07", 
     "date_updated":"2010-08-25 14:47:08", 
     "seo_name":"Big-Night", 
     "link":{ 
      "type":"article", 
      "url":"http:\/\/movies.nytimes.com\/movie\/review?res=9501E6DA1539F93AA15750C0A960958260", 
      "suggested_link_text":"Read the New York Times Review of Big Night" 
     }, 
     "related_urls":[ 
      { 
       "type":"overview", 
       "url":"http:\/\/movies.nytimes.com\/movie\/135855\/Big-Night\/overview", 
       "suggested_link_text":"Overview of Big Night" 
      }, 
      { 
       "type":"showtimes", 
       "url":"http:\/\/movies.nytimes.com\/movie\/135855\/Big-Night\/showtimes", 
       "suggested_link_text":"Tickets & Showtimes for Big Night" 
      }, 
      { 
       "type":"awards", 
       "url":"http:\/\/movies.nytimes.com\/movie\/135855\/Big-Night\/details", 
       "suggested_link_text":"Cast, Credits & Awards for Big Night" 
      }, 
      { 
       "type":"community", 
       "url":"http:\/\/movies.nytimes.com\/movie\/135855\/Big-Night\/rnr", 
       "suggested_link_text":"Readers' Reviews of Big Night" 
      }, 
      { 
       "type":"trailers", 
       "url":"http:\/\/movies.nytimes.com\/movie\/135855\/Big-Night\/trailers", 
       "suggested_link_text":"Trailers & Clips for Big Night" 
      } 
     ] 
    } 

我的应用程序崩溃在“链接”,因为我想使它像列表链接; 带班链接看起来像这样:

private String type; 
public void setType(); 

ECT 你能帮助我吗?

我的结果类看起来是这样的:

package com.galite.nyt; 

import java.util.List; 

public class Results { 
    private int movie_id; 
    private String display_title; 
    private String sort_name; 
    private String mpaa_rating; 
    private String critics_pick; 
    private String byline; 
    private String headline; 
    private String capsule_review; 
    private String summary_short; 
    private String publication_date; 
    private String opening_date; 
    private String dvd_release_date; 
    private String date_updated; 
    private List<RelatedUrl> related_url; 
    private String article; 
    private String url; 
    private String suggest_link_text; 
    //private List<Link> link; 

    public Results(){ 

    } 
    //Setters 
    public void setMovieId(int mi){ 
     movie_id = mi; 
    } 
    public void setDisplayTitle(String dp){ 
     display_title = dp; 
    } 
    public void setSortName(String sn){ 
     sort_name = sn; 
    } 
    public void setMpaaRating(String mr){ 
     mpaa_rating = mr; 
    } 
    public void setCriticsPick(String cp){ 
     critics_pick = cp; 
    } 
    public void setByline(String b){ 
     byline = b; 
    } 
    public void setHeadline(String h){ 
     headline = h; 
    } 
    public void setCapsuleReview(String cr){ 
     capsule_review = cr; 
    } 
    public void setSummaryShort(String ss){ 
     summary_short = ss; 
    } 
    public void setPublicationDate(String pd){ 
     publication_date = pd; 
    } 
    public void setOpeningDate(String op){ 
     opening_date = op; 
    } 
    public void setDvdReleaseDate(String drd){ 
     dvd_release_date = drd; 
    } 
    public void setDateUpdated(String du){ 
     date_updated = du; 
    } 
    public void setRelatedUrl(List<RelatedUrl> ru){ 
     related_url = ru; 
    } 
    //public void setLink(List<Link> l){ 
    // link = l; 
    //} 

    //Getters 
    public int getMovieId(){ 
     return movie_id; 
    } 
    public String getDisplayTitle(){ 
     return display_title; 
    } 
    public String getSortName(){ 
     return sort_name; 
    } 
    public String getMpaaRating(){ 
     return mpaa_rating; 
    } 
    public String getCriticsPick(){ 
     return critics_pick; 
    } 
    public String getByline(){ 
     return byline; 
    } 
    public String getHeadline(){ 
     return headline; 
    } 
    public String getCapsuleReview(){ 
     return capsule_review; 
    } 
    public String getSummaryShort(){ 
     return summary_short; 
    } 
    public String getPublicationDate(){ 
     return publication_date; 
    } 
    public String getOpeningDate(){ 
     return opening_date; 
    } 
    public String getDvdReleaseDate(){ 
     return dvd_release_date; 
    } 
    public String getDateUpdated(){ 
     return date_updated; 
    } 
    public List<RelatedUrl> getRelatedUrl(){ 
     return related_url; 
    } 
    //public List<Link> getLink(){ 
    // return link; 
    //} 
    //Setters 
    public void setArticle(String a){ 
     article=a; 
    } 
    public void setUrl(String u){ 
     url = u; 
    } 
    public void setSuggestLinkText(String s){ 
     suggest_link_text = s; 
    } 

    //Getters 
    public String getArticle(){ 
     return article; 
    } 
    public String getUrl(){ 
     return url; 
    } 
    public String getSuggestLinkText(){ 
     return suggest_link_text; 
    } 
} 

和我的链接类看起来是这样的:

package com.galite.nyt; 

public class Link { 
    private String article; 
    private String url; 
    private String suggest_link_text; 
    public Link(){ 

    } 

    //Setters 
    public void setArticle(String a){ 
     article=a; 
    } 
    public void setUrl(String u){ 
     url = u; 
    } 
    public void setSuggestLinkText(String s){ 
     suggest_link_text = s; 
    } 

    //Getters 
    public String getArticle(){ 
     return article; 
    } 
    public String getUrl(){ 
     return url; 
    } 
    public String getSuggestLinkText(){ 
     return suggest_link_text; 
    } 
} 

就像你所看到的,我把链接列表中的注释,因为这是我收到的问题。 我试图直接在Results类中传递链接。

回答

0

好吧问题是“链接”,它不是一个数组。什么,你需要做的就是保持链接类,但在结果类添加:

private Link link; 

    public Link getLink(){ 
     return link; 
    } 
+0

哈。我只是发布这个相同的答案。做好了解问题。还要注意你的语句“Gson只识别json对象和数组”是不正确的。 – 2011-06-08 09:33:44

+0

哈这就是我看到它并使用它:对于json对象和数组。但你是对的。 – Tsunaze 2011-06-08 10:39:25

0

一种方法是创建一个JSON响应的映射响应的对象结构相匹配的对象模型:

example: 
Reviews: 
    Review (Constructor from a JSONObject): 
    Fields - ID, title, name, bigNight, etc 
    List of Links 

Links (Constructor from a JSONArray): 
    Fields - Type, URL, etc 

然后创建了评价对象传入审查响应 - 这创建所需的对象,并通过在JSONArray链接等...

+0

这是这个问题,我编辑我的问题,你可以在我的职业 – Tsunaze 2011-04-01 11:22:11