Я получаю CRAZY, пытаясь использовать Json Serializer/Deserializer в своей библиотеке классов и импортировать свою сборку в SQL Server.Как использовать Json Parser в процедуре CLR?
Я работаю с WebAPI, который отвечает строкой Json, и я хочу создать процедуру CLR Sql, которая вызывает этот API и использует результат api.
Я попробовал 2 способа Deserialize JSon строку:
1) System.Web.Script.Serialization
2) System.Runtime.Serialization.Json
Сначала один принеси мне эту ошибку:
Assembly 'system.web.extensions, version=4.0.0.0, culture=neutral, publickeytoken=31bf3856ad364e35.' was not found in the SQL catalog. (Microsoft SQL Server, Error: 6503)
И второе:
Assembly 'system.runtime.serialization, version=4.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089.' was not found in the SQL catalog. (Microsoft SQL Server, Error: 6503)
Есть ли способ разбора json в моей библиотеке классов?! (за исключением создания JSon/десериализации Serializer для моей личности в библиотеке классов !!!)
Visual Studio 2015 Сообщество, Microsoft SQL Server 2016 Developer
Спасибо заранее.
Код, который вы дали, работал, большое спасибо, но он предупредил, что сказал: если вы обновляете или обслуживаете эту сборку или .NET Framework, ваша программа интеграции CLR может перестать работать. Каково ваше предложение ? включить код для анализа JSON в вашем проекте? или продолжайте импортировать System.Runtime.Serialization? – Parsa
@ Parsa Да, это «предупреждение» именно то, что я упомянул в пункте № 3 в верхнем разделе (с использованием ** ServiceModel ** в качестве примера). Учитывая, что JSON, как и XML, представляет собой текстовый формат, это просто вопрос его разбора (в отличие от необходимости использования ресурса, доступного только в библиотеках .NET Framework). Вот почему я использую JsonFX. Это не идеально, но он делает то, что мне нужно, с ассамблеей, обозначенной как «SAFE», а база данных - «TRUSTWORTHY OFF». Но если вам просто нужно это для одного или двух документов (не в общем смысле), тогда я напишу его вручную и сделаю с ним. –
Я тоже использовал JsonFx, в то время как я хотел добавить JsonFx в сборки sqlserver, он дал мне эту ошибку: <<< CREATE ASSEMBLY не удалось, потому что тип «XmlInTransformer» в безопасной сборке «JsonFx» имеет статическое поле «DefaultObjectName». Атрибуты статических полей в безопасных сборках должны быть отмечены только в Visual C#, ReadOnly в Visual Basic или на языке Visual C++ и на промежуточном языке. >>> После этого я перехожу к источнику JsonFx и делаю эти атрибуты ReadOnly !!! И это работает, это правда ??? – Parsa