Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用GSON解析URL_Android_Json_Gson - Fatal编程技术网

Android 使用GSON解析URL

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

我只是尝试使用GSON解析给定的URL,但遇到了一些问题

网址

Json响应是这样的。它在字符串的开头包含一个({),这使得解析出现问题

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