Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Arioch
Member

Откуда:
Сообщений: 11075
s62
"[5, 6, 7, 8]" - валидный текст JSON.


Любопытно. Видимо да, после того как JSON оторвали от JS буква O - Object - потеряла смысл.

Впрочем, советуют всё равно против массивов как начала.
Якобы массивы опасны для безопасности, и поэтому многие библиотеки откажутся от такого документа.

https://security.stackexchange.com/questions/7001/how-should-web-app-developers-defend-against-json-hijacking/7003#7003
18 мар 19, 14:33    [21835996]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Arioch
Member

Откуда:
Сообщений: 11075
Игорь_UUS,

в Delphi например "ExpertsExchange" и "ExpertSexChange" - один и тот же идентификатор.

Будешь если сериализовать записи/объекты - разный регистр может сыграть злую шутку.

Или даже не ты, а опять же, другая программа с которой ты общаться будешь,
18 мар 19, 14:35    [21836001]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Arioch
Member

Откуда:
Сообщений: 11075
ну и на практике проверить, что именно получится после x := TJSONObject.ParseJSONValue('[1,2,3,4]');
18 мар 19, 14:37    [21836004]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 667
Arioch
ну и на практике проверить, что именно получится после x := TJSONObject.ParseJSONValue('[1,2,3,4]');


Проверял, работает, но через "объект массив" (TJSONOArray)
19 мар 19, 08:34    [21836809]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 667
Arioch,

Вы путаете понятия "объект" и "массив" поэтому приведённый пример Вашего кода работать не будет
19 мар 19, 08:35    [21836812]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 5359
Игорь_UUS
Arioch
ну и на практике проверить, что именно получится после x := TJSONObject.ParseJSONValue('[1,2,3,4]');


Проверял, работает, но через "объект массив" (TJSONOArray)

    class function ParseJSONValue(const Data: string; UseBool: Boolean = False): TJSONValue; overload; static;

в даннном случае возвращает TJSONArray
проверять и приводить нужно самому
19 мар 19, 09:57    [21836886]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Arioch
Member

Откуда:
Сообщений: 11075
Игорь_UUS,

я не путаю (особенно, раз "работает"), я допускаю большую функциональность, чем следует из одного лишь названия класса. И, видимо, угадал, что оно все же работает.

хотя, в общем-то, это ваш вопрос, не мой.

мне бы в голову не пришло голые массивы не завёрнутые в объект парсить.

вот и я узнал что-то новое
19 мар 19, 11:37    [21837067]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 667
Нашёл похоже багу в стандартных библиотеках

значение целого числа например "MyNumber":789

валидно и "v is TJSONString" и "v is TJSONNumber"


я написал собственную небольшую библиотеку, которая переводит json в TDataSet, и я не мог понять где же ошибся... библиотека определяет тип значения и назначает данный тип полю TDataSet, и получается, изначально проверялась валидность по "v is TJSONString" а потом уже "v is TJSONNumber" и тип Integer определялся как string


В моём понимании: v is TJSONString - должно быть "MyNumber":"789" а не "MyNumber":789 т.е. если кавычек нет, то это уже число как минимум, но определяется как TJSONString.

Получается бага или я что-то недопонимаю?
19 мар 19, 13:29    [21837275]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 667
Всё это на DXE10.2
19 мар 19, 13:29    [21837277]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Arioch
Member

Откуда:
Сообщений: 11075
Игорь_UUS,

посмотри дерево наследования TJSONString и TJSONNumber

очевидно, либо TJSONNumber is TJSONString, либо TJSONString is TJSONNumber

Игорь_UUS
т.е. если кавычек нет, то это уже число как минимум


А если там например ИНН - который строка состоящая из цифр ?

Кстати, "MyNumber" вообще говоря на практике может быть без кавычек (по исходному смыслу Java Script Object) и многиe библиотеки такое читают
19 мар 19, 14:27    [21837360]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Arioch
Member

Откуда:
Сообщений: 11075
а строка, которая МОЖЕТ интерпретироваться, как дата, перестаёт от этого быть строкой?
19 мар 19, 14:28    [21837361]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 667
Arioch
Игорь_UUS,

посмотри дерево наследования TJSONString и TJSONNumber

очевидно, либо TJSONNumber is TJSONString, либо TJSONString is TJSONNumber

Игорь_UUS
т.е. если кавычек нет, то это уже число как минимум


А если там например ИНН - который строка состоящая из цифр ?

Кстати, "MyNumber" вообще говоря на практике может быть без кавычек (по исходному смыслу Java Script Object) и многиe библиотеки такое читают


ИНН - вообще то это строка в виде чисел! но не как не целое число

что касается: TJSONNumber is TJSONString - весело!

Давай посмотрим с другой стороны:

Если
"MyNumber":"123" то TJSONNumber <> TJSONString
"MyNumber":123 то TJSONNumber = TJSONString

вот тут как раз "веселье"((
19 мар 19, 15:25    [21837445]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Arioch
Member

Откуда:
Сообщений: 11075
Игорь_UUS
ИНН - вообще то это строка в виде чисел! но не как не целое число


я так и написал.

а теперь скормими ИНН JSON-библиотеке, или XML-библиотеке.
Они российских законов не знают.
И вообще, что в этом поле ИНН, а не что-то другое не знают.

как json-библиотека определит, что тут число-не-строка или строка-не-число?
никак.

поэтому твоей программе отдают и как строку и как число, а ты уж сам смотри, что тебе нужнее
19 мар 19, 15:35    [21837462]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Arioch
Member

Откуда:
Сообщений: 11075
не вижу веселья. Ты же знаешь, что в \том ключе должно быть, строка или число, так и читай.

тут и то интереснее: http://forum.codenet.ru/q73936/Хитроумный TJSONNumber: как определиться с Integer или Float?
19 мар 19, 15:38    [21837466]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1714
Arioch
как json-библиотека определит, что тут число-не-строка или строка-не-число?
никак.

не несите чушь, определит согласно стандарта

Arioch
тут и то интереснее: http://forum.codenet.ru/q73936/Хитроумный TJSONNumber: как определиться с Integer или Float?

ничего интересного, даже стандарт можно не читать, достаточно посетить json.org
19 мар 19, 16:42    [21837550]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Arioch
Member

Откуда:
Сообщений: 11075
все реальные json-документы до буквы соответсвуют последней версии стандарта?

посетить json.org - это один из способов прочитать стандарт
19 мар 19, 16:51    [21837563]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9768
Arioch
все реальные json-документы до буквы соответсвуют последней версии стандарта?

Косячить в крови людей. Простота JSON обманчива ....
1) Зачастую люди не понимают природу JSON и далее лепят одноименные элементы в объектах, безименные подобъекты в объектах, ссылки по каким-то именам и тд.
2) Сплошь и рядом русские буквы как есть.
3) Местами все идет без кавычек.

Ну теперь либо JSON либо не-JSON. С не-JSON хоть ИНН хоть что будет работать с или без кавычек и в любой кодировке, хоть 3х битной :)
19 мар 19, 18:58    [21837688]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
fraks
Member

Откуда: Новосибирск
Сообщений: 1469
Dmitry Arefiev
Arioch
все реальные json-документы до буквы соответсвуют последней версии стандарта?

Косячить в крови людей. Простота JSON обманчива ....
1) Зачастую люди не понимают природу JSON и далее лепят одноименные элементы в объектах, безименные подобъекты в объектах, ссылки по каким-то именам и тд.
2) Сплошь и рядом русские буквы как есть.
3) Местами все идет без кавычек.

IMHO большинство воспринимают и используют JSON просто как упрощенный заменитель XML, при этом никакого отношения к Яве не имеющий.
20 мар 19, 04:07    [21837949]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Arioch
Member

Откуда:
Сообщений: 11075
Вот к Яве он точно отнощшения никогда не имел
20 мар 19, 11:26    [21838215]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1714
Arioch
Вот к Яве он точно отнощшения никогда не имел

всмысле?
20 мар 19, 11:36    [21838229]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Arioch
Member

Откуда:
Сообщений: 11075
в прямом
какоe отношение JSON имеет к Яве ?


fraks
большинство воспринимают и используют JSON ... при этом никакого отношения к Яве не имеющий


т.е. типа как он имеет отноiение, но мужики-то не знают
20 мар 19, 11:53    [21838261]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Василий 2
Member

Откуда:
Сообщений: 815
Дегтярев Евгений
всмысле?

Капитан Очевидность поясняет: Arioch апеллирует к распространенной ошибке смешивания Java и JavaScript
21 мар 19, 10:27    [21839225]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1714
А это ни одно и то же?
21 мар 19, 11:27    [21839333]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
goldmi45
Member

Откуда:
Сообщений: 1196
Дегтярев Евгений
А это ни одно и то же?

Нет. Java представляет собой объектно-ориентированный язык программирования, а JavaScript - это объектно-ориентированный язык создания сценариев. Код на Java необходимо скомпилировать, а код JavaScript используется в текстовом виде.
21 мар 19, 14:26    [21839603]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте лучшую по Вашему мнению библиотеку для работы с json  [new]
Arioch
Member

Откуда:
Сообщений: 11075
Это четыре разных человека. (c)
21 мар 19, 14:26    [21839604]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
Все форумы / Delphi Ответить