2014-10-07 203 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

相关问题