我正在使用Retrofit从我的WebAPI REST服务中获取一些数据。但是我的模型包含一个byte [],这会导致异常。
我收到的例外情况如下:
Caused by: retrofit.converter.ConversionException: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 122 path $.Photo
出现此异常是因为我的模型有一个名为Photo的byte []。
我的模特:
public class Artists {
private long ID;
private String Firstname;
private String Lastname;
private String Description;
private String Countrycode;
private byte[] Photo;
private java.util.Date Born;
private java.util.Date Death;
private java.util.Date Edited;
我的REST API Java界面:
public interface ArtistRestService {
@GET("/artist/{id}")
Artists getArtist(@Path("id") long artistID);
@GET("/artist")
List<IdEditedRestObj> getArtists();
}
我知道我可以使用retrofit.mime.TypedByteArray,但我也使用GreenDA作为ORM映射器,我不想重构整个堆栈。
是否有一个简单的解决方法/解决方案,所以我可以以某种方式解析传入的json,以便不发生异常?
答案 0 :(得分:0)
public RestService(String url){
restAdapter = new RestAdapter.Builder()
.setClient(new OkClient(getClient()))
.setEndpoint(url)
.setConverter(new JacksonConverter())
.setErrorHandler(new RetrofitErrorHandler())
.setLogLevel(RestAdapter.LogLevel.HEADERS_AND_ARGS)
.build();
}
现在一切正常,thx