|
|
|
Как проверить на nil?
|
|||
|---|---|---|---|
|
#18+
Добрый день, Всем! Работаю с TLkJson для парсинга JSON строк. Хочу научиться проверять существование конкретного поля. Смысл в том что JSON объекты приходят иногда с разным количеством полей. Пример 1: Код: php 1. Пример 2: Код: php 1. Как видите - в примере 2 отсутствует поле "addField". И проблема в том что когда я обращаюсь к результату после парсинга такой строки (без поля "addField") Код: pascal 1. ...то получаю ошибку "AccessViolation". Если писать Код: pascal 1. то ругается компилятор на несовместимость типов данных. Начинаю копаться в отладчике. После обращения к полю мы попадаем в процедуру Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. затем вот сюда Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Видим что когда поля не существует исходники TLkJSON в своих глубинах возвращают nil. Но if Assigned(..) при этом не работает. Как быть? Что нужно написать, чтобы не получать этот AccessViolation? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2017, 16:18 |
|
||
|
Как проверить на nil?
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2017, 16:32 |
|
||
|
Как проверить на nil?
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Код: pascal 1. ??? да-да, ужасно. Но я ж говорю - копался в исходниках - увидел что где то возвращается nil, и решил проверить на nil Assigned. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2017, 16:44 |
|
||
|
Как проверить на nil?
|
|||
|---|---|---|---|
|
#18+
Вроде разобрался как правильно работать с TLkJSON: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. При таком раскладе, если поля нет - возвращается пустая строка, или 0 в зависимости от того что вызывать - getInt или getString ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2017, 16:47 |
|
||
|
Как проверить на nil?
|
|||
|---|---|---|---|
|
#18+
forklive_Vasilisk_ Код: pascal 1. ???да-да, ужасно.Я спрашиваю, такая проверка как у меня в коде работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2017, 18:16 |
|
||
|
Как проверить на nil?
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_forkliveпропущено... да-да, ужасно.Я спрашиваю, такая проверка как у меня в коде работает? Нет. Компилятор ругается на несовместимость типов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2017, 20:33 |
|
||
|
Как проверить на nil?
|
|||
|---|---|---|---|
|
#18+
forkliveНет. Компилятор ругается на несовместимость типов.Каких типов? Спрашиваю третий раз. Не forklive Код: pascal 1. а_Vasilisk_ Код: pascal 1. Вы разницу видите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2017, 14:40 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=122&tid=2041448]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
51ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 325ms |

| 0 / 0 |
