Ich versuche gerade, den JSONParser des Codenamens auf api zu verwenden.Warum gibt der JSONParser immer ein Double zurück?
Auf der Backend-Seite gibt es einen langen Wert senden, aber in meiner Anwendung gibt es einen doppelten Wert analysiert.
Ich weiß, dass es eine Methode gibt zu sagen setUseLongs (boolean) und ich habe dieses Feld bereits auf True festgelegt. Wenn ich den Parser instanziiere und System.out.println (p.isUseLong) anrufe, druckt es true.
Das Feld wird jedoch immer noch als Doppelwert analysiert, obwohl es als langer Wert gesendet wird.
Was fehlt mir hier? Hier
ist der Code:
@Override
protected void readResponse(InputStream input) throws IOException {
JSONParser.setUseLongs(true);
JSONParser p = new JSONParser();
System.out.println(p.isUseLongs()); //true and a Warning to use static methods static...
Map<String,Object> data = p.parseJSON(new InputStreamReader(input));
System.out.println(data); //long value already printed as double
}
EDIT
Hier ist die JSON String (in der letzten Zeile gedruckt wird, die Parser Ausgang):
[
{createdByUserId=1364.0, //should be int
createdAtDate=1.464330197735E12, //should be long
deleted=false, //boolean, correct
updatedAtDate=1.464330197735E12, //long
name=Hallo1, //String, correct
...
]
Vielleicht kann die Aktualisierung Ihrer Bibliothek helfen, da ein Fehler damit verbunden war: https://github.com/codenameone/codenameone/issues/1254 –
danke, aktualisiert meine libs, refreshed libs, immer noch die gleichen –
Es vielleicht nützlich, um uns den JSON-Text zu zeigen. –