我像这样构建了我的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 – Moshi Retrofit错误:“预期字符串但是BEGIN_OBJECT”全部内容,希望文章能够帮你解决android – Moshi Retrofit错误:“预期字符串但是BEGIN_OBJECT”所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)