powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Проверить существование TJSONObject
11 сообщений из 11, страница 1 из 1
Проверить существование TJSONObject
    #39814542
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создаем TJSONObject

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



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

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


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

Бардак да и только. Наверное, эту Delphi-библиотеку писали программисты ещё хуже, чем я
...
Рейтинг: 0 / 0
Проверить существование TJSONObject
    #39814634
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2, та не, что-то не то,
innerObject.Null возвращает false
...
Рейтинг: 0 / 0
Проверить существование TJSONObject
    #39814649
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Проверить существование TJSONObject
    #39814659
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так-с... я всегда думал, что между
TJSONObject(...)
и
... as TJSONObject
нет разницы, что это одно и то же
...
Рейтинг: 0 / 0
Проверить существование TJSONObject
    #39814664
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11нет разницы, что это одно и то жеЭто вам на Java
...
Рейтинг: 0 / 0
Проверить существование TJSONObject
    #39814667
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а tmpObject какого типа должен быть?
...
Рейтинг: 0 / 0
Проверить существование TJSONObject
    #39814668
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_, я жабу вообще не знаю
...
Рейтинг: 0 / 0
Проверить существование TJSONObject
    #39814670
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11а tmpObject какого типа должен быть?Того, что возвращает TJSONObject.ParseJSONValue. Я не помню, как он объявлен
...
Рейтинг: 0 / 0
Проверить существование TJSONObject
    #39814672
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а точно...

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


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