其他分享
首页 > 其他分享> > android – Moshi Retrofit错误:“预期字符串但是BEGIN_OBJECT”

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