Jquery 使用JSON.net将JSON返回到JScript的最佳方法
我将使用WCF和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
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);