Вы можете проанализировать его как JsonPrimitive , поскольку у него есть методы для проверки типа isBoolean , isNumber и isString , а также методы для получить значение
public class ViewPair {
@SerializedName("label")
private String label;
@SerializedName("value")
private JsonPrimitive value;
}
Вот пример, который у меня есть для тестирования этих трех сценариев ios
ViewPair targetObject1 = new Gson().fromJson("{\"label\":\"Label\", \"value\":56}", ViewPair.class);
ViewPair targetObject2 = new Gson().fromJson("{\"label\":\"Label\", \"value\":false}", ViewPair.class);
ViewPair targetObject3 = new Gson().fromJson("{\"label\":\"Label\", \"value\":\"string value\"}", ViewPair.class);
Из JsonObject
вы можете напрямую получить JsonPrimitive
JsonPrimitive object = item.getAsJsonPrimitive("value");
А из JsonPrimitive
вы можете получить значение в требуемом виде
object.getAsString()
object.getAsInt()
object.getAsBoolean()