2016-06-23 9 views
-1

Wie legen Sie den Wert für einen Schlüssel mithilfe von JSONObject in Java auf eine Ganzzahl fest? Ich kann String-Werte mit JSONObject.put(a,b); festlegen, aber ich bin nicht in der Lage herauszufinden, wie .put() verwenden, um ganzzahlige Werte festzulegen. Zum Beispiel: Ich möchte, dass mein JsonObject wie folgt aussieht: {"age": 35} statt {"age": "35"}.Wie legen Sie einen Integer-Wert mit JSONObject in Java fest?

+0

Welche JSON Bibliothek sind verwendest du? – Onur

+0

org.json.JSONObject – Arun

+0

Die Formatierung wurde korrigiert, sodass alle Codeobjekte als Code formatiert sind. Verwenden Sie die richtige Schreibweise für Java (es beginnt mit einem Großbuchstaben). – 1201ProgramAlarm

Antwort

2

Sie können die Ganzzahl als int im Objekt speichern, indem Sie put verwenden. Dies ist umso mehr der Fall, wenn Sie die Daten tatsächlich ziehen und dekodieren, die Sie für eine Konvertierung benötigen.

So schaffen wir unsere JSONObject

JSONObject jsonObj = new JSONObject(); 

Dann können wir unsere int hinzufügen!

Nun um es als Integer zurück zu bekommen, müssen wir es einfach als int dekodieren.

int age = (int) jsonObj.get("age"); 

Es ist nicht so sehr, wie das JSONObject es speichert, sondern eher, wie Sie es abrufen.

+0

Ich sehe, was Sie sagen, aber wenn ich das versuche, bekomme ich einen Java-Fehler, der sagt: "Die Methode put (String, String) im Typ Map ist nicht anwendbar für die Argumente (String , int) " – Arun

+0

Können Sie Ihren tatsächlichen Code anzeigen, indem Sie Ihre Antwort bearbeiten und den Code hinzufügen? Es sieht so aus, als ob Sie versuchen, es zu einem MAP hinzuzufügen, für das Sie die Typen String und String festgelegt haben. – basic

+0

oh warte, ich sehe das Problem jetzt. Danke für die Hilfe! – Arun

-1

Wenn Sie mit org.json Bibliothek, müssen Sie nur dies tun:

JSONObject myJsonObject = new JSONObject(); 
myJsonObject.put("myKey", 1); 
myJsonObject.put("myOtherKey", new Integer(2)); 
myJsonObject.put("myAutoCastKey", new Integer(3)); 

int myValue = myJsonObject.getInt("myKey"); 
Integer myOtherValue = myJsonObject.get("myOtherKey"); 
int myAutoCastValue = myJsonObject.get("myAutoCastKey"); 

Denken Sie daran, dass Sie andere haben "get" Methoden, wie:

myJsonObject.getDouble("key"); 
myJsonObject.getLong("key"); 
myJsonObject.getBigDecimal("key");