我正在使用ASP.MVC 1返回IEnumerable对象(例如Cars):

public class Car : Entity<Car>
{
    public virtual string Make { get; set; }
    public virtual double Length { get; set; }
    public virtual string Colour { get; set; }
}

像这样:

[AcceptVerbs(HttpVerbs.Post)]
public JsonResult GetRoutes()
{
    IEnumerable<Car> cars = _carTask.GetCars();
    return Json(cars);
}

在我的页面中,我想遍历返回的每辆车,所以我有以下内容:

$.post("/Home/GetCars", null, 
    function(cars)
    {
         alert("type of object returned is " + typeof cars + ", content is " + cars);
         $.each(routes, function()
         {
              alert(this);
         });
    }
);

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

对象的类型是字符串,内容是[{“ Make”:“ BMW”},{“ Make”:“ Ford”}]

这告诉我我正在返回一个字符串(我不应该返回一个对象吗?),其中包含一个包含2个对象的Json结构。 但是,jQuery $ .each函数随后继续遍历字符串中的每个字符,因此我得到了46个警报框:第一个显示“ [”,然后是“ {”,然后是“””,然后是“ M”,然后是“ a” ',然后是'k'...您就明白了。

根据我的阅读,jQuery应该将其解析为一个集合,并且应该仅迭代两次以向我显示警报,每辆车一次。 然后,我可以执行alert(car.Make)来显示制造商,但是如果我尝试未定义(因为字符串没有Make属性)。

我究竟做错了什么? 感谢您提供的任何帮助,必须有一个明显的错误,但我保证我会先进行大量的谷歌搜索,但没有采取任何行动! :)

#1楼 票数:6 已采纳

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

$.post("/Home/GetCars", null, 
    function(cars)
    {
         $(cars).each(function() {
             alert(this); //this should point to the car. 
         });
    },
   "json"
);

#2楼 票数:1

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

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

或添加“ json”作为要发布的最后一个参数

#3楼 票数:0

链接文字

$.post("/Home/GetCars", null, 
    function(cars)
    {
         $.each(cars, function() {
              alert(this.Make);
         });
    },
   "json"
);

  ask by James Allen translate from so

未解决问题?本站智能推荐:

1回复

在JQuery和Ternary语句中遍历JSON循环

嗨,我在过去的一个小时里一直在为此苦苦挣扎,并在解析JSON时倾倒了所有旧线程,但遇到了两个问题。 首先是能够使用此代码遍历我的两个对象。 使用$.each(data[0 or 1], function(key, val)可以让我解析一个或另一个部分。 到目前为止,php的输出是
2回复

遍历JSON对象

我在遍历JSON对象时遇到了一些问题。 我有一个用AJAX获得的JSON文件,那里有15个对象。 在HTML中,我有一个DIV ,其中包含3个部分:标题,正文和日期。 每隔15秒,我应该使用JSON文件中的数据更新此部分。 HTML: JavaScript的: $(func
2回复

遍历返回的JSON以创建我的图表

我正在尝试动态创建CanvasJs图表所需的数据系列,到目前为止还没有高兴。 不知何故,我的代码无法正常工作。 我收到以下错误: 这是我的JSON数据 这是我的代码,用于检索JSON和创建我的数据系列
2回复

使用jquery遍历对象并解析表中的变量

我尝试通过我从JSON网址获得的多维对象迭代jquery。 我知道如何在PHP中执行此操作,但在Jquery中它对我来说是安静的新功能。 你能告诉我我该怎么做吗? 这是我的对象结构(我知道它的数组,但是因为我在PHP中将它打印为数组...对象结构是相同的,因为数据源是相同的JSON U
2回复

遍历JSON中的复杂对象列表?

我建立了要放入JSON结果的对象列表: 在我的JSON结果图中,我将: 如何在JavaScript中遍历此集合。 我需要访问对象的“深层”元素。 编辑: 但似乎此列表未发送给客户端。 我在Chrome调试器中收到此错误: 解答:错误是因为我正在序列化具
3回复

遍历JSON响应以从数组/对象获取键和值

我正在尝试遍历industryIdentifiers列表并保存类型和标识符值。 我尝试使用以下代码,但输出未定义。
2回复

使用jQUERY $ .each()迭代返回的JSON对象

我正在使用jQuery的$ .ajax方法调用getjson.php,该方法使用PHP的json_encode($ data)返回JSON对象。 我的JSON结构看起来像这样... [{“ StoreKey”:“ 84”,“ StoreName”:“ Region1”,“ 0”:“
2回复

迭代jQuery格式不正确的JSON

我有一个包含许多嵌套对象的JSON文件,其结构类似于此: 这种分支/嵌套结构相当广泛,并具有更多的“ key:value”对,出于可读性考虑,我将其省略。 我正在尝试创建可遍历嵌套对象并将其格式化为嵌套列表的迭代jQuery / js,如下所示: 它可以达到所有对象分支的深