2016-06-23 2 views
-1

Как установить значение для целого целого с помощью JSONObject в Java? Я могу установить значения String, используя JSONObject.put(a,b); Однако, я не могу определить, как использовать .put() для установки целочисленных значений. Например: Я хочу, чтобы мой jsonobject выглядел так: {"age": 35} вместо {"age": "35"}.Как установить целочисленное значение с помощью JSONObject в Java?

+0

Какие JSON библиотеки вы используете? – Onur

+0

org.json.JSONObject – Arun

+0

Убрано форматирование, чтобы все объекты кода были отформатированы как код. Используйте правильную орфографию для Java (она начинается с большой буквы). – 1201ProgramAlarm

ответ

2

Вы можете сохранить целое число как int в объекте с помощью put, тем более, когда вы на самом деле вытягиваете и декодируете данные, которые вам нужны для преобразования.

Так мы создаем наш JSONObject

JSONObject jsonObj = new JSONObject(); 

Тогда мы можем добавить наш Int!

jsonObj.put("age",10); 

Теперь, чтобы вернуть его в виде целого числа, нам просто нужно передать его как int при декодировании.

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

Это не так много, как JSONObject хранит его, но более того, как вы его получения.

+0

Я вижу, что вы говорите, но когда я пытаюсь это сделать, я получаю сообщение об ошибке Java: «Метод put (String, String) в типе Map не применим для аргументов (String , int) " – Arun

+0

Можете ли вы показать свой фактический код, отредактировав свой ответ и добавив код? Поскольку похоже, что вы пытаетесь добавить его в MAP, который, как вы заявили, имеет типы строк и строк, – basic

+0

oh wait, я вижу проблему сейчас. Спасибо за помощь! – Arun

-1

Если вы используете org.json библиотеку, вы просто должны это сделать:

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"); 

Помните, что у вас есть другие "получить" методы, такие как:

myJsonObject.getDouble("key"); 
myJsonObject.getLong("key"); 
myJsonObject.getBigDecimal("key"); 
Смежные вопросы