powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / JSON Serializer/Deserializer
25 сообщений из 36, страница 1 из 2
JSON Serializer/Deserializer
    #39645754
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посоветуйте библиотеку для JSON сериализации/десериализации.

Требование:
1. Умение работать с RTTI, чтобы можно было сериализовать/десериализовать готовые объекты
2. Правильно работать со строками (выгрузка в UTF-8 с экранированием служебных символов, загрузка с пониманием экранированных символов)
3. Умение работать с List<>
4. Умение работать с перечислимыми типами
5. Возможность добавления своих сериализаторов/десериализаторов для каких-то типов.

Сейчас взял JSON object serializer for Delphi от Clever Components.

У него подержка только первого пункта. 4 и 5 я добавил вручную. Из 5, следует работа с 3. 2 сейчас буду пилить.

Но, может есть, что более адекватное?

Наверное, даже устроит отсутствие поддержки RTTI при условии, адекватной работы остальных пунктов

С уважением, Vasilisk
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #39645759
stanilar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В качестве предложения:

Может глянуть mormot? Он умеет как-то работать с json. Даже в виде запросов к БД. В запросах мне правда не удалось разобраться.
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #39645760
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #39645791
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatРодное чем не устраивает?Не видел.

Завтра еще почитаю. А пока прикрутил к стандартному DBXJSON поддержку RTTI. Вроде, получается менее громоздко, чем использование DBXJSONReflect
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #39645841
Фотография krapotkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я всегда пользуюсь XSuperObject.
По сравнению с родным все сильно лучше.
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #39645842
Фотография krapotkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл сказать, родной JSON от XSO содержит \u
исправляю на лету этим https://bitbucket.org/vkrapotkin/unescapejson/src/master/
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #39646000
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krapotkinя всегда пользуюсь XSuperObject.Как я понял, сериализацию для класса нужно писать вручную? С RTTI оно не работает?
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #39646105
Фотография krapotkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
конечно работает
там же примеры на главной
https://github.com/onryldz/x-superobject
я все настройки программ всегда в JSON храню
чтение-запись одной строкой
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #39646110
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это уже не сам SO, а скорее даже надстройка на него :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
JSON Serializer/Deserializer
    #40021646
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_, подскажи, можно ли с этой библиотекой сделать что-то типа:

Код: pascal
1.
2.
StoreComponentToJSon(Checkbox1, VarArrayOf(['checked']));
StoreComponentToJSon(Form1, VarArrayOf(['Top', 'Left', 'State']));


и, соответственно
Код: pascal
1.
2.
RestoreComponentFromJSon(Checkbox1, VarArrayOf(['checked']));
RestoreComponentFromJSon(Form1, VarArrayOf(['Top', 'Left', 'State']));



т.е. задача: сохранить и потом восстановить какие-то конкретно указанный список свойств? все не нужны
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #40021746
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
, можно ли с этой библиотекой сделать что-то типа:
Я до этой библиотеки так и не добрался. Я уже говорил, что написал свою обертку над стандартным System.Json. Теперь у меня все работает через такой класс
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
  TJsonParser = class abstract
  public
    class function ToJson(const AValue: TValue): TJSONValue; overload; static;
    class function ToJson(AObject: TObject): TJSONValue; overload; static;
    class function ToJson<T>(const AData: T): TJSONValue; overload; static;
    class function ToJson(AType: TRttiType; AInstance: Pointer): TJSONValue; overload; static;
    class function ToJsonStr<T>(const AData: T): string; static;
    class function FromJson(AJson: TJSONValue; AType: TRttiType): TValue; overload; static;
    class procedure FromJson(const AJsonBuf: TArray<Byte>; AOffset, ALen: Integer; ADst: TObject); overload; static;
    class procedure FromJson(const AJsonStr: string; ADst: TObject); overload; static;
    class procedure FromJson(AJson: TJSONValue; ADst: TObject); overload; static;
    class procedure FromJson<T: IInterface>(const AJsonStr: string; const ADst: T); overload; static;
    class procedure FromJson<T: IInterface>(AJson: TJSONValue; const ADst: T); overload; static;
    class function FromJson<T>(const AJsonBuf: TArray<Byte>; AOffset: Integer = 0;
      ALen: Integer = -1): T; overload; static;
    class function FromJson<T>(const AJsonStr: string): T; overload; static;
    class function FromJson<T>(AJson: TJSONValue): T; overload; static;
    class procedure FromJson(AJson: TJSONValue; AType: TRttiType; AInstance: Pointer); overload; static;
  end;

...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #40021750
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_> написал свою обертку над стандартным System.Json.
_Vasilisk_> Теперь у меня все работает через такой класс

Нигде не выкладывал?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #40021751
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Нигде не выкладывал?
Нет. Влом писать документацию
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #40021752
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если оно более-менее отделено (хотя бы в виде отдельного модуля)
и не ограничены всякими корпоративными запретами - вполне можно
выложить куда-нибудь (да хоть файлом сюда) даже без документации -
может кому-нибудь и пригодится.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #40021803
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
может кому-нибудь и пригодится.

+1

Тоже есть желание пошшупать JSON. Правда, в Лазаре уже есть вроде как готовая обертка , но посмотреть бы пригодилось
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #40021829
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Давай сами напишем
Я давно хочу
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #40021831
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SOFT FOR YOU
_Vasilisk_,

Давай сами напишем
Я давно хочу


пиши сразу самый супербыстрый во всём мире
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #40021837
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

Какого черта здесь смешного?
В данном случае скорость важна, но важнее гибкость
Мне удавалось создавать очень быстрые решения сериализации/десериализации
Но самые ли они быстрые - я не знаю
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #40021843
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU
Мне удавалось создавать очень быстрые решения сериализации/десериализации

Очень быстрые не подходят. Нужены САМЫЕ быстрые решения. Нынешнее железо с Очень быстрыми не справится.
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #40021852
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SOFT FOR YOU
Но самые ли они быстрые - я не знаю

Слабак.
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #40021861
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да хватит уже стебать!
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #40021923
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень странно выглядит, ребята.
Вы вроде как инженеры, программисты.
И пытаетесь высмеивать коллегу, который действительно достигает выдающихся результатов.
Если часть моих наработок действительно самые быстрые в мире - это прекрасно.
А если вы не согласны с тем или иным утверждением - прошу аргументировать.

По теме
Я давно веду работу относительно RTTI/маршаллинга/парсинга.
В C# меня очень привлекает концепция форматтера, когда одни и те же данные можно упаковать в разный формат. XML, JSON или что-то ещё.
Часть кода уже есть в Tiny.Library. Часть не опубликована.
Касательно XML и JSON меня смущает отсутствие компетенций. Мне нужен человек, который сможет критически подходить к тем или иным решениям, консультировать, проверять, писать автотесты.

__Vasilisk__ как раз обладает экспертностью в этих форматах.

P.S. Писать очередную библиотеку, которая выполняет те же действия - бессмысленно.
Писать самую быструю... или самую гибкую - вот достойная цель.
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #40021997
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док> Тоже есть желание пошшупать JSON

Сам JSON-то несложен, там интересен код сериализации/десериализации.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #40022118
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По просьбам трудящихся https://github.com/anton-shchyrov/UrsJSON

Если кто сделает документацию - буду рад
...
Рейтинг: 0 / 0
JSON Serializer/Deserializer
    #40022123
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / JSON Serializer/Deserializer
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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