ASP.NET中的json数据输出

时间:2009-09-15 16:04:46

标签: asp.net jquery asp.net-mvc json

我正在使用ASP.NET命令

var returnValue = new JsonResult { Data = items.Skip((pageNumber - 1) * pageSize).Take(pageSize) };

return returnValue;

通过JSON返回表的分页内容,但是当我尝试解析它时,在jQuery中,$.each将每个字符作为单独的元素。

该输出的行是

[{"ItemNumber":1,"Description":"Description1"}, {"ItemNumber":2,"Description":"Description2"}]

正确列出所有行和字段。然而,这对我来说看起来不像格式正确的JSON(我相信它应该被{}包围),是吗?

如果不是我应该怎样做才能正确输出表格?如果是这样,我如何循环遍历jQuery中的每个元素,并提取字段值?

5 个答案:

答案 0 :(得分:1)

这是正确格式化的JSON。

您可以尝试使用

进行评估
var someVar = eval(jsonValue);

但这可能导致XSS。

甚至可以使用此plugin

question也可能相关。

答案 1 :(得分:0)

实际上,使用eval可能是危险的:与{}中包含它的情况不同,可能会破坏数组的构造。当eval尝试使用Array构造函数创建数组时,会发生这种情况。请参阅this post

如果你不担心,你可以使用eval - 为了安全,在wtaniguchi的答案中使用JQuery插件。

答案 2 :(得分:0)

你能不能这样循环吗?

for (i = 0; i <= returnValue.length - 1; i++){
   //access your properties like this:
   returnValue[i].ItemNumber;
   returnValue[i].Description;
}

我不知道使用JsonResult是否会像那样工作,但是如果你在服务器端代码中返回一个对象列表,它就会像那样工作。假设您正在使用Asp.Net AJAX,它将自动序列化。

答案 3 :(得分:0)

据我所知,Asp.net Ajax中还存在以下json反序列化器:

Sys.Serialization.JavaScriptSerializer.deserialize(...)

你必须浏览确切的用法,因为我现在听不到它。

答案 4 :(得分:0)

当我使用 System.Web.Script.Serialization.JavaScriptSerializer.Serialize创建JSON数据时,我使用AJAX.NET函数 Sys.Serialization.JavaScriptSerializer.deserialize 来获取我的JSON数据