Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 json  [new]
Девиченский Василий
Member

Откуда: Москва
Сообщений: 26
столкнулся с проблемой обработки json средствами MS SQL, на этом форуме не нашел ничего мало-мало путного. поисковые системы так же не возвращают ничего приличного.
исходя из http://connect.microsoft.com/SQLServer/feedback/details/673824/add-native-support-for-json-to-sql-server-a-la-xml-as-in-for-json-or-from-openjson
и далее http://www.simple-talk.com/sql/t-sql-programming/consuming-json-strings-in-sql-server/
собрал вложение.
Буду рад, если кому-нибудь потребуется, а еще больше, если будут выявлены примеры некорректной работы и/или предложения по модернизации.

К сообщению приложен файл (json.sql - 17Kb) cкачать
20 янв 14, 12:50    [15440042]     Ответить | Цитировать Сообщить модератору
 Re: json  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Тормозной TSQL ффтопку. Императивщина отстой.

1. Непонятно зачем он нужен на стороне SQL, пусть этим занимается то для чего он лучше приспособлен (вебсервера и т.п.).
2. Для Enterprize костылей намного лучше подходит CLR или что-то внешнее.
3. Вы бы лучше потренировались декларативному SQL - намного полезнее.

Это моё IMXO, его не трожь.
20 янв 14, 16:35    [15442060]     Ответить | Цитировать Сообщить модератору
 Re: json  [new]
Девиченский Василий
Member

Откуда: Москва
Сообщений: 26
Mnior,

Критика-то весьма пользительна, когда она конструктивна.
Если уж ратуешь за CLR-сборки, то можно испросить у яндекса исходники по парсингу json на C#. далее собрать библиотеку, и приложить ее к своему ответу.

Тогда фраза про тормозной TSQL и фтопку будет гораздо более осмысленной.
13 мар 14, 13:08    [15716824]     Ответить | Цитировать Сообщить модератору
 Re: json  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Девиченский Василий
... можно испросить у яндекса исходники по парсингу json на C# ...
Это пеар чтоле?
Причём тут Яндех-хуяндекс?! Библиотек по JSON жопой ешь. А главное есть же нативный/встроенный. Индеец Нахуа негодуэ.

Девиченский Василий
Критика-то весьма пользительна, когда она конструктивна.
Это конечно похвально. Но IMXO лучше критическое отношение ко всему и главное к себе. И не даёт тянуть всё подрят в рот.
Лучший продукт - это его отсутствие. Поэтому заменить что-то лучше пустотой, отсутствием.

Но главное, IMXO вы совершенно не поняли пункт 1. (15442060)
13 мар 14, 22:40    [15720653]     Ответить | Цитировать Сообщить модератору
 Re: json  [new]
Девиченский Василий
Member

Откуда: Москва
Сообщений: 26
пункт 1. несколько выходит за рамки разработчика - я согласен с тем, что json должен быть на web-серверах. Но иногда приходится этот парсинг делать на своей стороне. У меня система написана на дельфях. Насколько я искал, то парсера лучше SuperObject я не нашел, но и он работает плохо - парсит только если все данные представлять в виде динамического массива строк без ограничения длины - утечка памяти происходит. Лучшего я не нашел.
Веб-разработчиков (Java) уговорить на использование xml или чего-нибудь такого универсального не удалось. А работать надо.

Яндекс как поисковая система в рекламе, по-моему, не нуждается совершенно.

нативного/встроенного json нет ни для Delhi XE, ни для ms sql 2012 (вроде обещают в 2014 и что-то замутили в oracle, но ни то, ни другое в руках не держал)

Если есть желание оказать содействие коллегам по несчастью - сделай это. Предложи реализацию на продвинутой CLR, у которой на входе будет json, а на выходе xml. Выходной формат любой из применимых стандартным скулем, можно и табличкой.

Если это получится, то буду очень благодарен.

Mnior
Девиченский Василий
... можно испросить у яндекса исходники по парсингу json на C# ...
Это пеар чтоле?
Причём тут Яндех-хуяндекс?! Библиотек по JSON жопой ешь. А главное есть же нативный/встроенный. Индеец Нахуа негодуэ.

Девиченский Василий
Критика-то весьма пользительна, когда она конструктивна.
Это конечно похвально. Но IMXO лучше критическое отношение ко всему и главное к себе. И не даёт тянуть всё подрят в рот.
Лучший продукт - это его отсутствие. Поэтому заменить что-то лучше пустотой, отсутствием.

Но главное, IMXO вы совершенно не поняли пункт 1. (15442060)
14 мар 14, 17:23    [15725907]     Ответить | Цитировать Сообщить модератору
 Re: json  [new]
парсинг строк
Guest
первое попавшееся
http://json.codeplex.com/

парсинг строк, это одна из задача которую целесообразно выносить из TSQL кода в CLR
14 мар 14, 17:38    [15726014]     Ответить | Цитировать Сообщить модератору
 Re: json  [new]
petalvik
Member

Откуда:
Сообщений: 704
Девиченский Василий,

Вбиваем в гугл запрос c# json to xml, открываем две первые ссылки:
http://stackoverflow.com/questions/814001/json-net-convert-json-string-to-xml-or-xml-to-json-string - тут используется популярная (хз, почему) библиотека Json.Net, которую нужно будет дополнительно скачать;
http://msdn.microsoft.com/ru-ru/library/bb924435(v=vs.110).aspx - Сопоставление JSON и XML - используются только родные средства дотнета; я бы выбрал это.

То есть сама конвертация json в xml элементарна, выполняется в несколько строк.
Осталось подключить clr-сборку к sql-серверу. Смотрим сюда: Введение в интеграцию SQL Server со средой CLR. Всего-то нужно включить CLR и развернуть сборку.
14 мар 14, 18:03    [15726176]     Ответить | Цитировать Сообщить модератору
 Re: json  [new]
Девиченский Василий
Member

Откуда: Москва
Сообщений: 26
petalvik, Большое спасибо, вторая ссылка мне тоже очень понравилась. Постараюсь сделать сборку по преобразованию документа json в xml.
Потому как парсинг таких объектов все еще требуется. Не уверен, что быстро - c# только начал изучать.
Результат выложу, надеюсь не только мне пригодится.
14 мар 14, 19:47    [15726716]     Ответить | Цитировать Сообщить модератору
 Re: json  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Девиченский Василий
Яндекс как поисковая система в рекламе, по-моему, не нуждается совершенно.
Я что-то подумал про проекты типа http://mirror.yandex.ru/, наборы программ и т.п.
Ссори.
Девиченский Василий
нативного/встроенного json нет
Да плять: System.Web.Script.Serialization
И не надо ничего качать и прикручивать. Если конечно у вас не допотопный скуль, и вы не дали поднять фреймворк до версии 3.5.
Девиченский Василий
Если есть желание оказать содействие коллегам по несчастью - сделай это.
С какого бодуна я буду делать 3х строчную функцию? Если любой школьнег это может сделать.
Девиченский Василий
Если это получится, то буду очень благодарен.
Если вы не тянете эту элементарщину, вам сюда.
Хотя petalvik вам всё разжевал как 3х летнему.
Девиченский Василий
У меня система написана на дельфях. Веб-разработчиков (Java) уговорить на использование xml или чего-нибудь такого универсального не удалось.
Смешались кони, люди.
Форматы и узлы взаимодействия не должны быть привязанными к чему либо, в любой системе формат передачи меняется настройкой в конфиге. И должно быть на столько подвижно, насколько возможно.
Рвите *опу, изучайте всё, главное подходы и принципы, не стойте на месте.
14 мар 14, 21:21    [15727095]     Ответить | Цитировать Сообщить модератору
 Re: json  [new]
Девиченский Василий
Member

Откуда: Москва
Сообщений: 26
Mnior, зачем ты это написал?
14 мар 14, 23:48    [15727590]     Ответить | Цитировать Сообщить модератору
 Re: json  [new]
NickAlex66
Member

Откуда:
Сообщений: 319
Девиченский Василий,

И тут Остапа понесло :-)
15 мар 14, 03:18    [15728138]     Ответить | Цитировать Сообщить модератору
 Re: json  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Девиченский Василий,

https://www.simple-talk.com/sql/t-sql-programming/producing-json-documents-from-sql-server-queries-via-tsql/
19 май 14, 00:10    [16034250]     Ответить | Цитировать Сообщить модератору
 Re: json  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Mind,

Некоторых так и тянет на извращения.
Я не против кто чем занимается у себя дома, главное эээ ... без пропаганды и разврата неокрепшего ума.
19 май 14, 00:57    [16034347]     Ответить | Цитировать Сообщить модератору
 Re: json  [new]
user89
Member

Откуда:
Сообщений: 2083
Девиченский Василий
нативного/встроенного json нет ни для Delhi XE, ни для ms sql 2012
http://www.webdelphi.ru/2011/10/rabota-s-json-v-delphi-2010-xe2/

дополнительно на форуме
19 май 14, 12:04    [16035624]     Ответить | Цитировать Сообщить модератору
 Re: json  [new]
Девиченский Василий
Member

Откуда: Москва
Сообщений: 26
user89,

доводилось ли использовать эту библиотеку? А то у меня на DelphiXE она регулярно падает и память течет.
5 июн 14, 09:21    [16123894]     Ответить | Цитировать Сообщить модератору
 Re: json  [new]
user89
Member

Откуда:
Сообщений: 2083
Девиченский Василий,

использовал DBXJSON в XE3. Правда ошибок не было... Память смотрел через диспетчер задач, утечек не наблюдал.
Вы можете создать новую тему в этой ветке https://www.sql.ru/forum/delphi
Приведите пример кода, гуру подскажут.
5 июн 14, 10:12    [16124129]     Ответить | Цитировать Сообщить модератору
 Re: json  [new]
kalimba
Member

Откуда:
Сообщений: 297
Девиченский Василий,

Сам лично использую script transformation в SSIS + библиотеку json.net (C#). Работает быстро и стабильно : ) Если вам это нужно чтобы можно было делать на лету, то можно реализовать через CLR, готовых решений не видел. Моё ИМХО что если у вас хранилище, то на данный момент легче предварительно всё нужное распарсить, а если OLTP - обрабатывать в приложении.
5 июн 14, 11:37    [16124678]     Ответить | Цитировать Сообщить модератору
 Re: json  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Add native support for JSON to SQL Server, a la XML (as in, FOR JSON or FROM OPENJSON)

Голосуйте.
8 июн 14, 15:03    [16138723]     Ответить | Цитировать Сообщить модератору
 Re: json  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5975
Mnior
Голосуйте.

Зачем? Серьезно, я не понимаю, зачем такие рюшки нужны SQL-серверу. Это же чисто клиентская фича. Лучше бы они регэкспы прикрутили.
8 июн 14, 17:29    [16138961]     Ответить | Цитировать Сообщить модератору
 Re: json  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Сон Веры Павловны
Mnior
Голосуйте.
Зачем? Серьезно, я не понимаю, зачем такие рюшки нужны SQL-серверу. Это же чисто клиентская фича. Лучше бы они регэкспы прикрутили.
"Зачем" было задано на "Голосуйте"?
У вас есть аргумент "против" вот и голосуйте против. И ставьте коммент почему так.

Я с вами согласен, как и XML вещь не нужная и должная обрабатываться внешними модулями.
Но при этом посмотрите сколько леммингов голосуют, что оно попало в топ.
М$ ленятся с XML допилить, так и с JSON нет стандартной простой утилиты изкаробки.

В добавок, народ запостил несколько Workaround-ов.
8 июн 14, 20:00    [16139186]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить