android – Moshi Retrofit错误:“预期字符串但是BEGIN_OBJECT”
作者:互联网
我像这样构建了我的Retrofit实例:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(server.url("/"))
.addConverterFactory(MoshiConverterFactory.create(moshi))
.build();
然后我这样调用我的MockWebServer实例:
server.enqueue(new MockResponse().setBody(jsonStr));
jsonStr的构建方式如下:
MyModel model = new MyModel("HOME", "AWAY", "ENTERTAIN", "NIGHT", "MUTE",
"VOLUME", "SCENE 1", "SCENE 2", "SCENE 3");
JsonAdapter<MyModel> jsonAdapter = moshi.adapter(MyModel.class).toJson(model);
但是,代码崩溃了:
Response response = api.getString().execute();
例外是:
com.squareup.moshi.JsonDataException: Expected a string but was BEGIN_OBJECT at path $
我做错了什么?
解决方法:
我找到了解决方案:
我的api界面需要
@GET(“/”)调用< JsonObject>的GetString();
不
@GET(“/”)调用< String>的GetString();
原因是我在模拟JSON响应,而不是普通的String.
标签:android,retrofit2,mockwebserver,moshi 来源: https://codeday.me/bug/20190717/1488087.html