Страница 8 из 18
cJSON: Формат полей для вложенных структур
Добавлено: 07 Декабрь 2022, 12:29
Дед Пахом
Вижу, что остались проблемы с массивами вложенных групп (group,dim(n)), буду вечером чинить.
cJSON: Формат полей для вложенных структур
Добавлено: 07 Декабрь 2022, 12:37
Игорь Столяров
Где-то во временном пространстве такое уже было ...
"Декабристы разбудили Герцена. Герцен развернул революционную агитацию." (C) В.И. Ленин
Я молчу со своими идеями не из скромности, а что бы не создавать завал и не замыливать предыдущие.

cJSON: Формат полей для вложенных структур
Добавлено: 07 Декабрь 2022, 17:56
Дед Пахом
Обновил до v1.28 на GitHub. Массивы групп починил.
cJSON: Формат полей для вложенных структур
Добавлено: 08 Декабрь 2022, 23:57
Игорь Столяров
Есть небольшое несовпадение описания в справке и работы класса с форматами.
Если задать в опции для тега формат выгрузки значений:
То результат будет:
Может быть здесь нужен Trim() результата ? А то какие-то странные числа выгружаются.
Спасибо !

cJSON: Формат полей для вложенных структур
Добавлено: 09 Декабрь 2022, 0:38
Дед Пахом
Что FORMAT(summa, @n_13.2) возвращает, то Вы и получаете. А почему REAL нельзя использовать? Будут нормальные числа выгружаться.
cJSON: Формат полей для вложенных структур
Добавлено: 09 Декабрь 2022, 8:30
Игорь Столяров
Дед Пахом писал(а): 09 Декабрь 2022, 0:38
А почему REAL нельзя использовать
Если Вы спрашиваете про тип данных - то да, конечно, REAL и используется.
Но хочется ведь получить в JSON нормальное форматированное число, а не результат жизнедеятельности FORMAT() "AsIs".
В каких сложных жизненных ситуациях может потребоваться использование тега вида "______________1.23" ?

(даже форум не отображает кучу пробелов между кавычками - Ave, Admin-у !)
В прошлом сообщении - я делал ссылку на справку.
Здесь всё красиво ... но ведь только для чисел с 4-мя целыми разрядами. А если вывести число 1.23 ?
cJSON: Формат полей для вложенных структур
Добавлено: 09 Декабрь 2022, 10:33
Admin
Игорь Столяров писал(а): 09 Декабрь 2022, 8:30
форум не отображает кучу пробелов между кавычками
Это не форум а html такой.
По теме:
Наверное по дефолту все таки стоит у всего вставляемого контента отрезать пробелы с обоих сторон.
Но встречал дурные схемы, так что тогда нужна опция на всякий случай Trim=FALSE
cJSON: Формат полей для вложенных структур
Добавлено: 09 Декабрь 2022, 11:44
Дед Пахом
Format вообще-то был введён для даты и времени.
Могу посоветовать форматировать числа при заполнении очереди.
cJSON: Формат полей для вложенных структур
Добавлено: 09 Декабрь 2022, 12:11
Игорь Столяров
Дед Пахом писал(а): 09 Декабрь 2022, 11:44
Format вообще-то был введён для даты и времени.
И здесь тоже используем с огромной благодарностью.
Вручную можно отформатировать всё - вопросов нет, спасибо.
Просто непонятно зачем в строке JSON левые пробелы для чисел ?
Просто из-за того, что Format() в языке Clarion не имеет гашения незначащих пробелов ?
Там где будут парсить такой JSON вряд ли знают о существовании Clarion ...

cJSON: Формат полей для вложенных структур
Добавлено: 09 Декабрь 2022, 12:16
Игорь Столяров
Я понимаю, что гипотетически сдвиг влево всех строк может нарушить совместимость.
Может быт проверять значение на Numeric() или действительно как-то явно опционально ...
cJSON: Формат полей для вложенных структур
Добавлено: 09 Декабрь 2022, 12:32
Дед Пахом
Уболтали.
Вижу 2 варианта:
1. Опция "FormatLeft":true дополняет опцию Format. Пример:
Код: Выделить всё
'[{{"name":"Summa","Format":"@n_13.2","FormatLeft":true}]'
2. Опция "FormatLeft":"@n13.2" полностью заменяет опцию Format. Пример:
Код: Выделить всё
'[{{"name":"Summa","FormatLeft":"@n_13.2"}]'
cJSON: Формат полей для вложенных структур
Добавлено: 09 Декабрь 2022, 12:38
Игорь Столяров
Я за второй вариант ! Просто и понятно.
Не надо плодить уточняющие флаги.
Круто: "FormatLeft" !

cJSON: Формат полей для вложенных структур
Добавлено: 09 Декабрь 2022, 13:33
Дед Пахом
Проверяйте FormatLeft, заодно и parser.Parse(IDynStr) можно протестировать.
cJSON: Формат полей для вложенных структур
Добавлено: 09 Декабрь 2022, 14:09
Игорь Столяров
Дед Пахом писал(а): 09 Декабрь 2022, 13:33
FormatLeft, заодно и parser.Parse(IDynStr)
Ура ! Пошла отгрузка по заявкам трудящихся !

Проверил - всё работает !
Конечно Parse(IDynStr) теперь много где нужно переделать - но это приятные хлопоты.

cJSON: Формат полей для вложенных структур
Добавлено: 09 Декабрь 2022, 16:40
finsoftrz
Хорошо бы для подобных библиотек побольше примеров практического использования. Например, если мне нужно что-то сделать на php или vbscript, это гуглится, и практически всегда можно найти работающий код. А в библиотеках на кларионе из-за того, что мало народа использует, надо тратить немало усилий и времени, чтобы понять, как что-то сделать в конкретном случае.