2016-05-03 20 views
-1

ich meine Retrofit weise wie folgt aufgebaut:Moshi Retrofit Fehler: "Erwartet einen String aber war BEGIN_OBJECT"

Retrofit retrofit = new Retrofit.Builder() 
      .baseUrl(server.url("/")) 
      .addConverterFactory(MoshiConverterFactory.create(moshi)) 
      .build(); 

Dann rufe ich meine MockWebServer Beispiel wie folgt aus:

server.enqueue(new MockResponse().setBody(jsonStr)); 

Wo jsonStr ist wie folgt aufgebaut:

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); 

jedoch stürzt der Code an dieser Stelle:

Response response = api.getString().execute(); 

Die Ausnahme ist:

com.squareup.moshi.JsonDataException: Expected a string but was BEGIN_OBJECT at path $

Was habe ich falsch gemacht?

Antwort

2

fand ich die Lösung: Meine api Schnittstelle

@GET("/") Call<JsonObject> getString();

NICHT

@GET("/") Call<String> getString();

Der Grund ist, haben musste, dass ich eine JSON-Antwort bin spöttisch, nicht ein einfache Zeichenfolge.