Ты знаешь как это разобрать? - PullRequest
1 голос
/ 01 апреля 2011

Мне нужно что-то проанализировать с 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;
    }
}

и мой класс ссылок выглядит следующим образомthis:

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

Как вы можете видеть, я поместил ссылки в списке в комментарии, потому что это была проблема, которую я получил.И я попытался передать ссылку прямо в классе результатов.

Ответы [ 2 ]

0 голосов
/ 08 июня 2011

Хорошо, проблема была в "ссылке", это не массив.Вам нужно сохранить класс Link, но в классе Results добавьте:

   private Link link;

   public Link getLink(){
       return link;
   }
0 голосов
/ 01 апреля 2011

Один из подходов заключается в создании объектной модели, которая соответствует структуре ответа 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

Затем вы создаете объект Reviews, передавая в ответе отзывы - ион создает необходимые объекты и передает в JSONArray для связи и т. д. *

...