Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Проверить существование TJSONObject / 11 сообщений из 11, страница 1 из 1
17.05.2019, 12:27
    #39814542
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить существование TJSONObject
Создаем TJSONObject

Код: pascal
1.
innerObject := TJSONObject(TJSONObject.ParseJSONValue('здесь неправильный json'));



Почему потом Assigned(innerObject) возвращает True?

Просто позже строка:
Код: pascal
1.
s := innerObject.ToString;


вызывает AV
...
Рейтинг: 0 / 0
17.05.2019, 14:30
    #39814626
Василий 2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить существование TJSONObject
TJSONAncestor.IsNull ?
...
Рейтинг: 0 / 0
17.05.2019, 14:34
    #39814630
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить существование TJSONObject
innerObject.ToString возвращает AV при этом innerObject.ToJSON возвращает '208', т.е. ту самую неправильную строку.
При этом innerObject.Count возвращает 3, хотя в справке написано, что "Number of key-value pairs of this JSON object" - Количество пар ключ-значение этого объекта JSON. Но ведт ни единой пары ключ-значение нет у этого innerObject.

Бардак да и только. Наверное, эту Delphi-библиотеку писали программисты ещё хуже, чем я
...
Рейтинг: 0 / 0
17.05.2019, 14:39
    #39814634
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить существование TJSONObject
Василий 2, та не, что-то не то,
innerObject.Null возвращает false
...
Рейтинг: 0 / 0
17.05.2019, 14:59
    #39814649
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить существование TJSONObject
X11,

Детский сад. Исходники же на руках. Смотри.

По идее у тебя ошибка каста. Т.е. вместо
X11
Код: pascal
1.
innerObject := TJSONObject(TJSONObject.ParseJSONValue('здесь неправильный json'));

должно быть
Код: pascal
1.
innerObject := TJSONObject.ParseJSONValue('здесь неправильный json') as TJSONObject;

или
Код: pascal
1.
2.
3.
tmpObject := TJSONObject.ParseJSONValue('здесь неправильный json');
if tmpObject is TJSONObject then
  innerObject := TJSONObject(tmpObject);



А то ты вначале кастуешь неизвестно куда, а потом удивляешься, почему работают одни методы и не работают другие
...
Рейтинг: 0 / 0
17.05.2019, 15:04
    #39814659
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить существование TJSONObject
Так-с... я всегда думал, что между
TJSONObject(...)
и
... as TJSONObject
нет разницы, что это одно и то же
...
Рейтинг: 0 / 0
17.05.2019, 15:06
    #39814664
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить существование TJSONObject
X11нет разницы, что это одно и то жеЭто вам на Java
...
Рейтинг: 0 / 0
17.05.2019, 15:07
    #39814667
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить существование TJSONObject
а tmpObject какого типа должен быть?
...
Рейтинг: 0 / 0
17.05.2019, 15:08
    #39814668
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить существование TJSONObject
_Vasilisk_, я жабу вообще не знаю
...
Рейтинг: 0 / 0
17.05.2019, 15:10
    #39814670
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить существование TJSONObject
X11а tmpObject какого типа должен быть?Того, что возвращает TJSONObject.ParseJSONValue. Я не помню, как он объявлен
...
Рейтинг: 0 / 0
17.05.2019, 15:11
    #39814672
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить существование TJSONObject
а точно...

пятница блин
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Проверить существование TJSONObject / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]