Frage

Ich habe schon einige Leute gesehen, Probleme, mit der Gson Bibliothek -. Ich konnte immer noch keine Lösung für mein Problem finden

Was ich versuche zu erreichen ist JSON parsen von öffentlichen Timeline Twitter in ein POJO mit Gson.

Im Folgenden ist meine Vorstellung von Twitters JSON Struktur:

public class OneTweet {


public OneTweet()
{
    // Empty constructor
}


public String coordinates;
public String favorited;
public String created_at;
public String truncated;
public String text;
public String contributors;
public String id;
public String geo;
public String in_reply_to_user_id;
public String place;
public String in_reply_to_screen_name;
//public user user;

public List<user> user;


public String source;
public String something;


}

public class user {

public String name;
public String profile_sidebar_border_color;
public String profile_background_tile;
public String profile_sidebar_fill_color;
public String created_at;
public String profile_image_url;
public String location;
public String profile_link_color;
public String follow_request_sent;
public String url;
public String favourites_count;
public String contributors_enabled;
public String utc_offset;
public String id;
public String profile_use_background_image;
public String profile_text_color;

// protected is a reserved identifier
public String pprotected;

public String followers_count;
public String lang;
public String notifications;
public String time_zone;
public String verified;
public String profile_background_color;
public String geo_enabled;
public String description;
public String friends_count;
public String statuses_count;
public String profile_background_image_url;
public String following;
public String in_reply_to_status_id;
public String screen_name;

 }

Map<String, OneTweet> json_string_array = googlejson.fromJson(jsonstring, new TypeToken<Map<String, OneTweet>>(){}.getType());

ich zur Zeit die folgenden Fehlermeldung erhalten:

  

Exception in thread "main" com.google.gson.JsonParseException: Erwartung Objekt gefunden: false

Ich vermute, entweder meine POJO Struktur falsch ist oder vielleicht hat es mit der Tatsache zu tun, dass das JSON-Objekt „geschützt“ ist eine geschützte Kennung in Java. Wenn letzteres der Fall ist, würde ich nicht wissen, wie es zu beheben.

War es hilfreich?

Lösung

Warum das Rad neu erfinden? Sie können verwenden Twitter4J . Denn es macht nicht die Analyse, und gibt Ihnen die benötigten Objekte.

Andere Tipps

alle Felder sind nicht String. zB: Mitteilung ist boolean

  import com.google.gson.annotations.SerializedName;

  public class Tweets {

@SerializedName("geo")
public String geo;

@SerializedName("in_reply_to_status_id")
public String in_reply_to_status_id;

@SerializedName("truncated")
public String truncated;

@SerializedName("created_at")
public String created_at;

@SerializedName("retweet_count")
public String retweet_count;

@SerializedName("in_reply_to_user_id")
public String in_reply_to_user_id;

@SerializedName("id_str")
public String id_str;

@SerializedName("place")
public String place;

@SerializedName("favorited")
public boolean favorited;

@SerializedName("source")
public String source;

@SerializedName("in_reply_to_screen_name")
public String in_reply_to_screen_name;

@SerializedName("in_reply_to_status_id_str")
public String in_reply_to_status_id_str;

@SerializedName("id")
public long id;

@SerializedName("contributors")
public String contributors;

@SerializedName("coordinates")
public String coordinates;

@SerializedName("retweeted")
public boolean retweeted;

@SerializedName("text")
public String text;

@SerializedName("profile_image_url")
public String profile_image_url;

// public user user;
public User user;


 }

und

import com.google.gson.annotations.SerializedName;

public class User {

@SerializedName("friends_count")
public int friends_count;

@SerializedName("profile_background_color")
public String profile_background_color;

@SerializedName("profile_background_image_url")
public String profile_background_image_url;

@SerializedName("created_at")
public String created_at;

@SerializedName("description")
public String description;

@SerializedName("favourites_count")
public int favourites_count;

@SerializedName("lang")
public String lang;

@SerializedName("notifications")
public boolean notifications;

@SerializedName("id_str")
public String id_str;

@SerializedName("default_profile_image")
public boolean default_profile_image;

@SerializedName("profile_text_color")
public String profile_text_color;

@SerializedName("default_profile")
public boolean default_profile;

@SerializedName("show_all_inline_media")
public boolean show_all_inline_media;

@SerializedName("contributors_enabled")
public boolean contributors_enabled;

@SerializedName("geo_enabled")
public boolean geo_enabled;

@SerializedName("screen_name")
public String screen_name;

@SerializedName("profile_sidebar_fill_color")
public String profile_sidebar_fill_color;

@SerializedName("profile_image_url")
public String profile_image_url;

@SerializedName("profile_background_tile")
public boolean profile_background_tile;

@SerializedName("follow_request_sent")
public boolean follow_request_sent;

@SerializedName("url")
public String url;

@SerializedName("statuses_count")
public int statuses_count;

@SerializedName("following")
public boolean following;

@SerializedName("time_zone")
public String time_zone;

@SerializedName("profile_link_color")
public String profile_link_color;

@SerializedName("protected")
public boolean protectedd;

@SerializedName("verified")
public boolean verified;

@SerializedName("profile_sidebar_border_color")
public String profile_sidebar_border_color;

@SerializedName("followers_count")
public int followers_count;

@SerializedName("location")
public String location;

@SerializedName("name")
public String name;

@SerializedName("is_translator")
public boolean is_translator;

@SerializedName("id")
public long id;

@SerializedName("listed_count")
public int listed_count;

@SerializedName("profile_use_background_image")
public boolean profile_use_background_image;

@SerializedName("utc_offset")
public int utc_offset;

}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top