История изменений
Исправление Bioreactor, (текущая версия) :
Скорее всего он ведёт себя так.
Вот мой простенький пример-импровизация
package hello;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
public class Test1{
public static void main(String[] args) {
String str = String.format("{\"pi\":3.14}");
JsonObject asJsonObject = new JsonParser().parse(str).getAsJsonObject();
// неопределенность
Object o = asJsonObject.get("pi").getAsNumber();
System.out.printf("%s %s\n", o, o.getClass());
o = asJsonObject.get("pi").getAsInt();
System.out.printf("%s %s\n", o, o.getClass());
o = asJsonObject.get("pi").getAsFloat();
System.out.printf("%s %s\n", o, o.getClass());
// по спеке пишем собственный обработчик
if (asJsonObject.get("pi").getAsString().contains(".")) { // и т.п.
System.out.println(asJsonObject.get("pi").getAsFloat());
} else {
System.out.println(asJsonObject.get("pi").getAsInt());
}
}
}
$ java Test1
3.14 class com.google.gson.internal.LazilyParsedNumber
3 class java.lang.Integer
3.14 class java.lang.Float
3.14
Так что маленькую библиотечку собственную за полчаса можно и самим набросать.
-------
А что по этому поводу скажет сам ЦАРЬ?
Исходная версия Bioreactor, :
Скорее всего он ведёт себя так.
Вот мой простенький пример-импровизация
package hello;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
public class Hello1 {
public static void main(String[] args) {
String str = String.format("{\"pi\":3.14}");
JsonObject asJsonObject = new JsonParser().parse(str).getAsJsonObject();
// неопределенность
Object o = asJsonObject.get("pi").getAsNumber();
System.out.printf("%s %s\n", o, o.getClass());
o = asJsonObject.get("pi").getAsInt();
System.out.printf("%s %s\n", o, o.getClass());
o = asJsonObject.get("pi").getAsFloat();
System.out.printf("%s %s\n", o, o.getClass());
// по спеке пишем собственный обработчик
if (asJsonObject.get("pi").getAsString().contains(".")) { // и т.п.
System.out.println(asJsonObject.get("pi").getAsFloat());
} else {
System.out.println(asJsonObject.get("pi").getAsInt());
}
}
}
$ java Test1
3.14 class com.google.gson.internal.LazilyParsedNumber
3 class java.lang.Integer
3.14 class java.lang.Float
3.14
Так что маленькую библиотечку собственную за полчаса можно и самим набросать.
-------
А что по этому поводу скажет сам ЦАРЬ?