Android 使用GSON解析URL
我只是尝试使用GSON解析给定的URL,但遇到了一些问题 网址 Json响应是这样的。它在字符串的开头包含一个({),这使得解析出现问题Android 使用GSON解析URL,android,json,gson,Android,Json,Gson,我只是尝试使用GSON解析给定的URL,但遇到了一些问题 网址 Json响应是这样的。它在字符串的开头包含一个({),这使得解析出现问题 java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 我的模型课如下所示: public class Flicker { public JsonFlickrFeed jsonFlickrFeed; public
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;
}
}
公共类闪烁{
公共JsonFlickrFeed JsonFlickrFeed;
公共JsonFlickrFeed getDealList(){
返回jsonFlickrFeed;
}
公共静态类JsonFlickrFeed{
公共字符串标题;
公共字符串链接;
公共字符串描述;
修改公共字符串;
公共字符串生成器;
public List items=new ArrayList();
}
公共静态类项目{
公共字符串标题;
公共字符串链接;
公共媒体;
公共字符串日期_;
公共字符串描述;
公共字符串已发布;
公共字符串作者;
公共字符串作者id;
公共字符串标签;
}
}
看看Json,您可以看到媒体
是类:
"media": {"m":"http://farm4.staticflickr.com/3706/10153214694_177e2dcd6d_m.jpg"},
因此,我添加了新的类Media
,带有String m;
顺便说一句,您不需要启动List items=new ArrayList();
Gson会为您这样做,并将任何列表
转换为链接列表
以下是修复程序的工作代码:
启动器
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;
}
具体问题,,please@josuadas可以请您再次检查:)是的!现在清楚了:)可以先从开头和结尾删除“(“and”)”。
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;
}