Как поместить ключ с нулевым значением в net.sf.json.JSONObject?

Я использую net.sf.json.JSONObject. Он удалит key, если мое значение равно null, пока я пытаюсь поместить данные в объект Json, используя put.

Есть ли способ сохранить мой ключ таким, какой он есть в моем объекте, даже если мое значение равно нулю?

напр.

 JSONObject json = new JSONObject();
 json.put("myKey",null);

Тогда мой вывод: {}

Но я хочу

вывод: {"myKey",""}

Как я могу сделать?


person Vishal Zanzrukia    schedule 21.09.2013    source источник


Ответы (3)


json.put("myKeyu",JSONObject.NULL);

Подробнее здесь.

person Archer    schedule 21.09.2013
comment
Привет... в моем случае это невозможно... мое значение динамически поступает из базы данных. Так что он может быть нулевым или нет. - person Vishal Zanzrukia; 21.09.2013
comment
почему бы не сделать так: json.put(myKeyu,value == null?JSONObject.NULL:value); - person Archer; 21.09.2013
comment
да, вы правы.. мы можем сделать, но я уже разработал свое приложение, и мне нужно какое-то глобальное решение, с помощью которого я должен изменить только одно место.. в вашем случае всякий раз, когда я устанавливаю значение в json, я должен изменить. разве это не возможно с помощью JsonConfig? - person Vishal Zanzrukia; 21.09.2013
comment
Нет. Сомневаюсь, что это можно сделать через JsonConfig. Я думаю, вы можете попробовать использовать АОП: stackoverflow. com/questions/4829088/ и перехватить все методы JSONObject.put и заменить ваш нуль на JSONObject.NULL. - person Archer; 21.09.2013

JSONObject.NULL для Apache Commons JSONObject.

Вместо этого попробуйте следующее:

json.put("key", JSONNull.getInstance())

Далее следует документация для net.sf.json.JSONObject:
http://json-lib.sourceforge.net/apidocs/index.html

Найдите JSONNull, чтобы узнать больше.

person asayamakk    schedule 07.08.2017

person    schedule
comment
Будет лучше, если вы объясните свой ответ. - person Harsh Wardhan; 04.12.2018