Не могу понять, почему я получаю
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException:
Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
Я, наверное, перебрал более 15 страниц stackoverflow и перепробовал кучу решений за целый день.
У меня есть простой прослушиватель веб-сокетов, который возвращает строку каждый раз, когда сообщение отправляется с моего сервера веб-сокетов.
@Override public void onMessage(WebSocket webSocket, String text) {
Log.d(TAG, "onMessage: Recieved: " + text);
}
возвращает строку:
{
"camera_id":"e9502c54-927c-4639-a94f-8d03149c9c62",
"posted_by":"14b07da5-1820-40db-8508 cc81261458aa",
"posted_by_user":"david23",
"message":"hello world"
}
Я успешно получаюкаждый элемент, используя мой класс модели
public class Message {
private String camera_id;
private String posted_by;
private String posted_by_user;
private String message;
public String getMessage() {
return message;
}
... rest of methods
}
И внутри моего слушателя onMessage ...
try{
Gson gson = new Gson();
Message message = gson.fromJson(text, Message.class);
Log.d(TAG, "onMessage: " + message.getMessage());
}catch (Exception e){
Log.d(TAG, "onMessage: Error: " + e);
}
Я успешно извлекаю строку ключа сообщения, но gson продолжает выдавать мне эту ошибку, и яНе могу понять, почему.
Exception: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException:
Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
Некоторые решения говорят мне, чтобы подтвердить, что json, отправленный с сервера, является строкой. Я дважды, трижды, бесчисленное количество раз проверял, что это строка. Даже убедился, используя .. String.valueOf (текст)
Может ли кто-нибудь помочь мне определить причину ошибки?
Edit1: ________________________________________________
Используя метод Roaim, чтобы проверить, содержит ли моя возвращаемая строка {}, он говорит, что нет, но мои журналы говорят мне, что это так. Как это может быть?
onMessage: Recieved: {"camera_id":"e9502c54-927c-4639-a94f-8d03149c9c62","posted_by":"14b07da5-1820-40db-8508-cc81261458aa","posted_by_user":"david23","message":"hello world"}
onMessage: hello world
Error: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String evan.com.websocketchatapplication.Message.getMessage()' on a null object reference