Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Parsing URL using GSON

Tags:

json

android

gson

I just tried to parse the given URL using GSON but I get some problems.

The url

http://api.flickr.com/services/feeds/photos_public.gne?format=json

jsonFlickrFeed({
    "title": "Uploads from everyone",
    "link": "http://www.flickr.com/photos/",
    .....)

The Json response is some thing like this . which contains a ({ in the begning of string which make problem in parsing.

java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1

My model class is below like this:

 public class Flicker {

    public JsonFlickrFeed jsonFlickrFeed;

    public JsonFlickrFeed getDealList() {

        return jsonFlickrFeed;
    }

    public static class JsonFlickrFeed{

        public String title;
        public String link;
        public String description;
        public String modified;
        public String generator;
        public List<Items> items = new ArrayList<Flicker.Items>();

    } 

    public static class Items {

        public String title;
        public String link;
        public String media;
        public String date_taken;
        public String description;
        public String published;
        public String author;
        public String  author_id;
        public String  tags;
    }


}
like image 915
Bora Avatar asked Jan 26 '26 03:01

Bora


1 Answers

Take a look on Json and you can see that media is class:

"media": {"m":"http://farm4.staticflickr.com/3706/10153214694_177e2dcd6d_m.jpg"},

Therefore I added new class Media with String m;

BTW, you don't need to initiate List<Items> items = new ArrayList<Flicker.Items>();

Gson does that for you and convert any List to LinkedList

Here is a working code with fix:

Launcher

str = str.substring("jsonFlickrFeed(".length(), str.length()-1);

Gson gson = new Gson();
System.out.println(str);
JsonFlickrFeed jj = gson.fromJson(str, JsonFlickrFeed.class);

System.out.println((jj != null)?"true":"false");

Media

public class Media {
    public String m;
}

JsonFlickrFeed

public class JsonFlickrFeed {
     public String title;
     public String link;
     public String description;
     public String modified;
     public String generator;
     public List<Items> items;
}

Items

public class Items {
    public String title;
    public String link;
    public Media media;
    public String date_taken;
    public String description;
    public String published;
    public String author;
    public String  author_id;
    public String  tags;
}
like image 103
Maxim Shoustin Avatar answered Jan 28 '26 20:01

Maxim Shoustin



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!