У меня вопрос по поводу разбора строки на java объект. У меня есть этот ответ:
{
"status": "success",
"paginated": false,
"data": [{
"user": {
"id": 21,
"email": "kjhk@gmail.com",
"access_token": "ai_wy-tTLLEyRCPAF86dWPJdQ77gefsTPwBkvtlEkNs",
"test": []
}
}],
"message": ""
}
И я хочу получить статус
Я создал этот класс и установил только статус, так как это единственное поле, которое я хочу, и все остальные ответ не важен
package responseObjects;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.ArrayList;
import java.util.List;
public class LogInResponse {
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonProperty("status")
public String status;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
В программе я отправляю запрос и получаю ответ, однако, когда я пытаюсь установить его как java объект, он потерпел неудачу в этой строке LogInResponse res = gson.fromJson(response.body().toString(),LogInResponse.class);
public class TestMain {
OkHttpClient client = new OkHttpClient();
JsonObject bodyJson = new JsonObject();
JsonObject responseJson = new JsonObject();
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
public String httpPost(String url, String json) throws IOException {
RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), json);
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
Response response = client.newCall(request).execute();
String strResponse = response.body().string();
JsonObject jsonObjectResponse = new JsonParser().parse(strResponse).getAsJsonObject();
Gson gson = new Gson();
LogInResponse res = gson.fromJson(response.body().toString(),LogInResponse.class);
return response.body().string();
}
это исключение
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226)
at com.google.gson.Gson.fromJson(Gson.java:927)
at com.google.gson.Gson.fromJson(Gson.java:892)
at com.google.gson.Gson.fromJson(Gson.java:841)
at com.google.gson.Gson.fromJson(Gson.java:813)
Может кто-нибудь посоветовать, что не так? как я могу получить статус из ответа? С уважением