2013-10-08 5 views
2

GSON을 사용하여 주어진 URL을 구문 분석하려고했지만 몇 가지 문제가 있습니다.GSON을 사용하여 URL 구문 분석

URL입니다

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

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

JSON 응답은 다음과 같이 몇 가지 일이다. 이는 포함 구문 분석에 문제를 만들 문자열의 begning에서 ({

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

내 모델 클래스는 다음과 같이 아래와 같습니다.

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


} 
+1

, 제발 – josuadas

+0

@josuadas가 다시 확인하시기 바랍니다 수 지정 문제 : – Bora

+0

예를 지정! 그것은 지금 분명하다 :) – josuadas

답변

2

는 JSON에 봐, 그리고 당신이 media는 것을 알 수 있습니다 클래스 :

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

그러므로 나는 String m;

새로운 클래스 Media 추가

BTW, 당신은 시작할 필요가 없습니다 List<Items> items = new ArrayList<Flicker.Items>();

GSON 않는 당신과 여기

LinkedList는 수정과 작업 코드 어떤 List에 변환을 위해 :

실행기

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"); 

미디어

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

항목

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; 
} 
관련 문제