Страница 8 из 18

cJSON: Формат полей для вложенных структур

Добавлено: 07 Декабрь 2022, 12:29
Дед Пахом
Вижу, что остались проблемы с массивами вложенных групп (group,dim(n)), буду вечером чинить.

cJSON: Формат полей для вложенных структур

Добавлено: 07 Декабрь 2022, 12:37
Игорь Столяров
Где-то во временном пространстве такое уже было ...
"Декабристы разбудили Герцена. Герцен развернул революционную агитацию." (C) В.И. Ленин
Я молчу со своими идеями не из скромности, а что бы не создавать завал и не замыливать предыдущие. :idied:

cJSON: Формат полей для вложенных структур

Добавлено: 07 Декабрь 2022, 17:56
Дед Пахом
Обновил до v1.28 на GitHub. Массивы групп починил.

cJSON: Формат полей для вложенных структур

Добавлено: 08 Декабрь 2022, 23:57
Игорь Столяров
Есть небольшое несовпадение описания в справке и работы класса с форматами.
Если задать в опции для тега формат выгрузки значений:

Код: Выделить всё

  '[{{"name":"Summa","Format":"@n_13.2"}]'
То результат будет:

Код: Выделить всё

  "summa": "       136.00",
Может быть здесь нужен Trim() результата ? А то какие-то странные числа выгружаются. :shock:
Спасибо ! :D

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 ?

1.jpg

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)
Ура ! Пошла отгрузка по заявкам трудящихся ! :) Проверил - всё работает ! :ty:
Конечно Parse(IDynStr) теперь много где нужно переделать - но это приятные хлопоты. :)

cJSON: Формат полей для вложенных структур

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