Я возвращаю JSON с использованием WCF и webHttpBinding
, чтобы он мог использовать JQuery для некоторых сеток. Сегодня я запрашиваю базу данных и получаю обратно DataTable
и, используя Linq, заполняю List<DTO>
одним из необходимых мне полей и сериализую его, используя SerializeObject
, чтобы я мог вернуть его клиенту как строка Ниже приведен фрагмент для реализации:
public string GetJSON(int pSkip, int pTake, int pCount)
{
DataTable dtResult = WUOnSiteMotivoRejeicaoBus.ObterRejeicoes(pSkip, pTake, pCount);
List<WUOsMotivoRejeicaoDTO> lsResult = dtResult.AsEnumerable()
.Select(row => new ClsResultDTO
{
Result1 = Convert.ToInt32(row["cd_result1"]),
Result2 = Convert.ToString(row["dc_result2"]),
})
.ToList();
return JsonConvert.SerializeObject(lsResult, Formatting.None);
}
На стороне интерфейса ниже приведена конфигурация:
[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "GetJson?skip={pSkip}&take={pTake}&count={pCount}")]
string GetJSON(int pSkip, int pTake, int pCount);
Возвращается строка JSON, которую нужно проанализировать, используя parseJSON
var obj = $.parseJSON(retorno);
Это лучший / правильный способ вернуть результат JSON, который будет использоваться клиентской стороной JScript? Есть ли способ вернуть что-то кроме строки и избежать синтаксического анализа?
EDIT
На стороне клиента я использую MVC3, а не ASP.NET Web Forms. Tks