SuperObject не может обработать пустую строку
Некоторые JSON-сериализаторы возвращаютnull
для поля данных пустой строки, например, I '
{
"searchtext": null,
"moretext": "contains something",
"bookdate": 1377468000000,
"empid": 12345,
"listtype": 1
}
используя SuperObject для создания ISuperObject:
var
FJSONRequest: ISuperObject;
then
FJSONRequest := SO(Request.Content); // Webservice request
Это возвращает объект со строкой, содержащей текст.'null'
Очевидно, это потому, что SuperObject не заботится о кавычках ("searchtext": a
дает те же результаты, что и"searchtext": "a"
).
Прежде чем я углублюсь в процедуру токенизатора с 980 строками, есть ли у кого-нибудь решение?
Я размышляю по линии (или / или):
оставить нулевое поле данных вне объекта JSON
вернуть пустую строку
Если ничего не помогает, я все равно могу
FJSONRequest := SO(StringReplace(Request.Content,': null,',':,',[rfReplaceAll]));
потому что мне нужно обрабатывать только запросы от приложения от одного из наших разработчиков, но этоне надежно.
(Нет, он не может подавитьnull
так кактам'Ошибка в том, как Моно обращается со своим данным.)
Кстати, яя испытываю именноповедение, упомянутое здесь, но в другой части кода SuperObject, так что обходной путь не делает работу.