Jquery 使用JSON.net将JSON返回到JScript的最佳方法

Jquery 使用JSON.net将JSON返回到JScript的最佳方法,jquery,wcf,json.net,webhttpbinding,Jquery,Wcf,Json.net,Webhttpbinding,我将使用WCF和webHttpBinding返回一个JSON,以便它可以用于某些网格的JQuery。今天,我查询数据库,得到一个DataTable,然后使用Linq,用我需要的字段填充列表,然后使用SerializeObject对其进行序列化,以便将其作为字符串返回给客户机。下面是实现的代码段: public string GetJSON(int pSkip, int pTake, int pCount) { DataTable dtResult = WUOnSiteMotivoRejeic

我将使用WCF和
webHttpBinding
返回一个JSON,以便它可以用于某些网格的JQuery。今天,我查询数据库,得到一个
DataTable
,然后使用Linq,用我需要的字段填充
列表,然后使用
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);
}
返回的是需要使用parseJSON解析的JSON字符串

   var obj = $.parseJSON(retorno);
这是返回JScript客户端使用的JSON结果的最佳/正确方法吗?是否有方法返回字符串以外的内容并避免解析

编辑


在客户端,我使用的是MVC3,而不是ASP.NET Web表单。不,你犯了一个常见的错误。拿着这个帖子去看看

永远不要这样做:)

编辑

需要再放一些。要点是:永远不要在web方法内序列化数据,因为WCF Infrastructure将为您完成这项工作。如果您自己进行序列化,WCF中有类似“停止将我的数据序列化为JSON”的配置,因此您的返回字符串将被序列化两次

因此,您将在客户机上执行双重求值(或parseJSON)


由于您只返回一个对象,其余的工作将由WCF完成。在客户端,如果您使用jQuery,它将自行计算返回值,并将准备使用的javascript对象传递到“成功”回调中(无需进一步解析)。

在客户端,我使用的是MVC和jQuery,没有ScriptManager。我应该用它吗?我不想告诉你,如果你不使用ScriptManager,你不应该:)坚持使用MVC和jQuery-这不是关于客户端,这是关于服务器端-不要在web方法中序列化数据-这就是我想说的;
   var obj = $.parseJSON(retorno);