Я думаю, что этот вопрос похож на стрельбу по глиняным пиджинам ... "Тяни ... взрыв!" ... сбито ... но, тем не менее, стоит спросить, я верю.
Многие JS-фреймворки и т. д. в наши дни используют JSON, и по понятной причине я знаю. Классический вопрос - «где преобразовать данные в JSON?».
Я понимаю, что в какой-то момент в конвейере вы должны преобразовать данные в JSON, будь то на уровне доступа к данным (я смотрю на JSON. Действительно ли плохая идея рассматривать функцию SQL для вывода в виде JSON?
Определитель: Я понимаю, что пытаться выводить тысячи строк подобным образом не очень хорошая идея - на самом деле не очень хорошая идея для веб-приложений в любом случае, если только вам это не нужно. Для моего требования мне нужно, возможно, 100 строк одновременно ...
Ответ на самом деле таков: это зависит .
Если ваше приложение маленькое и мало используется, то обязательно сделайте это в базе данных. Однако следует иметь в виду, что происходит, когда ваше приложение используется в 10 раз больше пользователей за 12 месяцев ?
Если это позволяет быстро, просто и легко реализовать кодировку JSON в ваши хранимые процедуры, а не в вашем веб-коде, и позволяет вам получить ваше приложение и использовать его, тогда это, безусловно, путь. Тем не менее, действительно не требуется много работы, чтобы сделать это «должным образом» с решениями, которые были предложены в других ответах.
Короче говоря, выберите решение, которое лучше всего соответствует вашим текущим потребностям, и одновременно подумайте о том, какое влияние оно окажет, если вам понадобится изменить его в будущем.
При использовании .net mvc вы сериализуете свои результаты в контроллерах и выводите JsonResult, есть метод Controller.Json (), который делает это за вас. При использовании веб-форм лучше всего подойдут обработчик http и класс JavascriptSerializer.
Лучше загрузить его, используя стандартную технику доступа к данным, а затем преобразовать в JSON. Затем вы можете использовать его в стандартных объектах .NET, а также в javascript на стороне клиента.
Привет, спасибо за все ответы ... меня до сих пор поражает, сколько людей находят время, чтобы помочь.
Все очень хорошие моменты и, безусловно, подтвердили мое мнение о том, что приложение / слой выполняет работу по преобразованию - как связующее звено между фактическими данными и интерфейсом. Полагаю, я не слишком много работал с MVC или SQL-2008, и поэтому не был уверен, есть ли какие-то самородки, которые стоит отслеживать.
Как это сработало (следуя некоторым ссылкам, размещенным здесь, и продолжая ловить рыбу), я решил пока сделать следующее (застрял на .NET 3.5 и не использовал MVC прямо сейчас ..):
Потому что прямо сейчас я использую страницу ASHX, чтобы действовать как посредник для javascript (т.е. через вызов JQuery AJAX) на моей странице ASHX у меня есть:
context.Response.ContentType = "application / json"; System.Web.Script.Serialization.JavaScriptSerializer json = new System.Web.Script.Serialization.JavaScriptSerializer ();
Затем я могу ввести: json.serialize (<>)
Может показаться немного отсталым, но это работает нормально ... и главное предостережение в том, что он никогда не возвращает огромные объемы данных за раз.
Еще раз спасибо за все отзывы!
Лучше всего загрузить данные в часть программы, а затем вернуть их как JSON.
.NET 4 поддерживает возврат json, и я сделал это как часть одного сайта ASP.NET MVC, и это было довольно просто и понятно.
Я рекомендую перенести преобразование из сервера sql
Я согласен с другими респондентами, что это лучше сделать в коде вашего приложения. Однако ... это теоретически возможно, если SQL Server может включать сборки CLR в базу данных с использованием синтаксиса create assembly . Выбор действительно за вами. Вы можете создать сборку для перевода в .net, определить эту сборку для SQL Server, а затем использовать содержащиеся в ней методы для сериализации в JSON в качестве возвращаемых значений из ваших хранимых процедур ...
Вот почему существует [WebMethod] (WebMethodAttribute).