gpt4 book ai didi

java - 使用 Retrofit 2,但预期为 BEGIN_OBJECT,但在第 1 行第 1 列路径 $ 处为 STRING

转载 作者:行者123 更新时间:2023-12-01 21:18:12 36 4
gpt4 key购买 nike

我做request使用 Retrofit 2 从 Flickr 获取照片。

我创建一个类来解析它:

    public class FlickrResult {

@SerializedName("photos")
@Expose
private FlickrPhotos photos;

@SerializedName("stat")
@Expose
private String stat;

public FlickrPhotos getPhotos() {
return photos;
}


public class FlickrPhotos {

@SerializedName("page")
@Expose
private int page;

@SerializedName("pages")
@Expose
private String pages;

@SerializedName("perpage")
@Expose
private int perpage;

@SerializedName("total")
@Expose
private String total;

@SerializedName("photo")
@Expose
private ArrayList<FlickrPhoto> photo;

public ArrayList<FlickrPhoto> getPhoto() {
return photo;
}


public class FlickrPhoto {

@SerializedName("id")
@Expose
private String id;

@SerializedName("owner")
@Expose
private String owner;

@SerializedName("secret")
@Expose
private String secret;

@SerializedName("server")
@Expose
private String server;

@SerializedName("farm")
@Expose
private int farm;

@SerializedName("title")
@Expose
private String title;

@SerializedName("ispublic")
@Expose
private int ispublic;

@SerializedName("isfriend")
@Expose
private int isfriend;

@SerializedName("isfamily")
@Expose
private int isfamily;

public String getTitle() {
return title;
}
}

}

}

我的构建请求是:

 static {
gson = new GsonBuilder()
.setLenient()
.create();
}



@NonNull
private static Retrofit buildRetrofit() {
Log.i(TAG, "onBuildRetrofitApiFactory");
return new Retrofit.Builder()
.baseUrl("https://api.flickr.com/services/")
.client(getClient())
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
}

改造界面

@GET("rest")  
Call<FlickrResult> getPhotos(@Query("method") String method,
@Query("api_key") String key,
@Query("format") String format,
@Query ("nojsoncallbac") String nojsoncallbac
);

我负责的是成功,但解析有问题。有异常(exception):

java.lang.IllegalStateException:预期为 BEGIN_OBJECT,但在第 1 行第 1 列路径 $ 处为 STRING

拜托各位,我需要你们的帮助!

最佳答案

您的 Retrofit 界面错误。

参数“nojsoncallbac”不正确,应为“nojsoncallback”。

这个不正确的参数会导致 API 在响应中返回不同的格式

jsonFlickrApi({
"photos": {
"page": 1,
"pages": 10,
"perpage": 100,
"total": 1000,
"photo": [
...
]
}
})

关于java - 使用 Retrofit 2,但预期为 BEGIN_OBJECT,但在第 1 行第 1 列路径 $ 处为 STRING,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39591467/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com