首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JQuery遍历Json集合遍历数据字符串的字符

使用JQuery遍历Json集合遍历数据字符串的字符
EN

Stack Overflow用户
提问于 2009-08-07 17:30:28
回答 3查看 4.7K关注 0票数 2

我使用ASP.MVC 1返回对象(比如汽车)的IEnumerable:

代码语言:javascript
复制
public class Car : Entity<Car>
{
    public virtual string Make { get; set; }
    public virtual double Length { get; set; }
    public virtual string Colour { get; set; }
}

如下所示:

代码语言:javascript
复制
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult GetRoutes()
{
    IEnumerable<Car> cars = _carTask.GetCars();
    return Json(cars);
}

在我的页面中,我想迭代每一辆返回的汽车,所以我有这样的结果:

代码语言:javascript
复制
$.post("/Home/GetCars", null, 
    function(cars)
    {
         alert("type of object returned is " + typeof cars + ", content is " + cars);
         $.each(routes, function()
         {
              alert(this);
         });
    }
);

当我运行此命令时,第一个警告框显示:

object类型为string,内容为{"Make":"BMW"},{"Make":"Ford"}

这告诉我我得到了一个字符串(我不应该得到一个对象吗?),它包含一个带有2个对象的Json结构。然而,jquery $.each函数继续迭代字符串中的每个字符,所以我得到了46个警告框:第一个框显示'[',然后是'{',然后是'"',然后是'M',然后是'a',然后是‘k’……您明白了。

根据我所读到的内容,jQuery应该将其解析为一个集合,并且应该只迭代两次以显示警报,每辆车一次。然后,我可以使用alert(car.Make)来显示Make,但是如果我尝试这样做,我就不会被定义(因为字符串没有Make属性)。

我做错了什么?谢谢你的帮助,肯定有一个明显的错误,但我保证我已经做了大量的谷歌搜索,但什么也没有找到!:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-07 17:34:19

尝试将"json“类型添加为$.post()方法中的最后一个参数。另外,我认为你可以简化你的each语句:

代码语言:javascript
复制
$.post("/Home/GetCars", null, 
    function(cars)
    {
         $(cars).each(function() {
             alert(this); //this should point to the car. 
         });
    },
   "json"
);
票数 6
EN

Stack Overflow用户

发布于 2009-08-07 17:35:29

您忘记告诉jquery将结果解释为json。默认情况下,$.post只返回一个数据字符串。您可以使用以下选项之一。然后,当你迭代时,它们将成为对象。

http://docs.jquery.com/Ajax/jQuery.getJSON

或者添加"json“作为post的最后一个参数

票数 1
EN

Stack Overflow用户

发布于 2009-08-07 17:59:12

link text

代码语言:javascript
复制
$.post("/Home/GetCars", null, 
    function(cars)
    {
         $.each(cars, function() {
              alert(this.Make);
         });
    },
   "json"
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1246014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档