Gson преобразование простой строки завершается неудачей за исключением - PullRequest
0 голосов
/ 01 мая 2020

Мне нужно преобразовать строку json в определенный тип в зависимости от типа возвращаемого значения функции. Строка json также может быть простой строкой. У меня возникают проблемы при преобразовании строк с использованием метода gson.from Json.

Почему возникает исключение в gson.from Json, если строка содержит пробел? И как мне обойти это?

import java.lang.reflect.Method;

import com.google.gson.Gson;

class Trial {
    Object retu() {
        return "BEVERLY OUTLAW";
    }
}

public class sample {
    public static void main (String args[]) {
        Gson gson = new Gson();
        Trial obj = new Trial();

        Method func = obj.getClass().getDeclaredMethods()[0];
        Object o = gson.fromJson("beverlyoutlaw", func.getGenericReturnType());
        System.out.println(o); ---> this prints beverlyoutlaw
        o = gson.fromJson("beverly outlaw", func.getGenericReturnType()); ---> This throws an exception!
        System.out.println(o);
    }
}

1 Ответ

0 голосов
/ 01 мая 2020

Строки в Json должны быть окружены кавычками. То есть - в самом Json

Ни "beverlyoutlaw", ни "beverly outlaw" не содержат кавычек в строке - кавычки являются лишь частью строкового литерала Java.

Видимо Gson не применяет это для строк без пробелов - для строк с пробелами, однако это строго необходимо.

Чтобы исправить проблему, используйте o = gson.fromJson("\"beverly outlaw\"", func.getGenericReturnType());

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...