2014-10-07 201 views
0

我是相當新的JSON解析,我使用GJson庫並遇到了這個問題。改裝預計BEGIN_OBJECT,但是BEGIN_ARRAY android

I'm trying to parse this JSON reponse:

這是我的模型類:

public class JsonModel {  
    public int posterId ; 
    public String title ; 
    public String descraption ; 
    public String category ;  
    public String director ; 
    public String written ; 
    public String stars ; 
    public String georgia_time ; 
    public String wold_time ; 
    public String ipone_5 ; 
    public String ipone_5_blur ; 
    public String ipone_4 ; 
    public String ipone_4_blur ; 
    public String youtube ; 
    public String MovieFbID ; 
    public String imdb ; 
    public Cinemas cinemas ; 
} 

class Cinemas{ 

    public List <Cinema> Cinemaname; 
} 

class Cinema{ 

    public String cinemaName ; 
    public List<info> info ; 
} 

class info{ 

    public String time; 
    public String hole ; 
    public String start_time ; 
    public String end_time ; 
} 

而且我反序列化的json這樣

try { 

      Gson gson = new Gson(); 

      JsonModel[] res1 = gson.fromJson(SpleshScreen.my_json, JsonModel[].class); 

      JsonModel jsonModel = new JsonModel(); 


      for (int i = 0; i < res1.length; i++) { 

       ServerItems objItem = new ServerItems(); 
       objItem.setImage(imageurl+jsonModel.ipone_4); 


       Log.e("imageee", objItem.getImage()); 
       arrayOfList.add(objItem); 

      } 

我在最後一行錯誤我的代碼

this is a my logcat error

回答

0

試試這個代碼:

res1 = gson.fromJson(SpleshScreen.my_json, JsonModel[].class); 
+0

我改變了它,但我synctacs錯誤 – Beka 2014-10-07 11:03:24

1

正如你所看到的,JSON的第一個字符是[。這是數組開始的字符。當你反序列化json時,你告訴Gson你想得到一個對象,而Gson發現的是一個數組。所以,你想在你的代碼來改變這是什麼:

JsonModel[] res1 = gson.fromJson(SpleshScreen.my_json, JsonModel[].class); 

後,你可以得到的第一個這樣的:

JsonModel jsonModel = res1[0]; 
+0

德Clippelit的工作,但如何我可以改變你的最後一行code.i的意思是,目前我只能得到第一項,但我想檢查我所有的第一,在json有3項。 – Beka 2014-10-07 11:12:14

+0

我不確定你的意思。你想從數組中獲取所有的JsonModel對象嗎?您可以將它們全部單獨放入陣列的for-loop中。 – 2014-10-07 11:48:29

+0

我更新了我的代碼,但不工作@Inneke De Clippel – Beka 2014-10-07 11:50:04

相關問題