jQuery模板访问数组对象成员

时间:2012-10-27 19:40:40

标签: jquery arrays json templates

我正在寻找如何从JSON结果中访问jQuery结果中的项目,如下所示。

[
 {"appLayerId":"6002",
  "name":"US",
  "description":"test",
  "dataSource":"POINT",
  "status":{
      "status":"Success",
      "reason":"None",
      "otherInfo":null
      }
  }
 ]

我在模板中认为它只是${appLayerId}但这似乎不起作用。

- 更新

如果它有助于某人帮助我,我正在尝试在jsFiddle上遵循此代码。 http://jsfiddle.net/iainjmitchell/kRRXC/ 与该示例的不同之处在于我在jquery模板部分中获取JSON和我的名称的URL。正如我在原帖中提到的那样,我的json就在上面。就像我说的,我可以在firebug中看到json响应,并且没有页面错误,但我没有在模板上看到页面上的任何文本。希望这可以帮助别人帮助我。谢谢。

- 更新2

我显然在这里遗漏了一些简单的东西。你要求查看代码。就像我说的那样,它与那个例子完全一样。这是不同的。

twitterUrl:“http://localhost/Services.Administration/Maintenance.svc/layers?Fmt = application / json”,

然后在模板部分我有这个div。

 <div class="source">
    <label>${name}, ${appLayerId}</label>
 </div>

当你说时,只需访问类似对象的属性。我可以做的对象是什么,objectName.appLayerId在模板中。不确定你到底在说什么,对不起。

希望这有助于您帮助我解决这个问题。谢谢你的帮助。

- 更新3

进一步研究......我做了一个console.dir(this.model);在addAll函数中。在firebug中,控制台将“模型”显示为空。那为什么会这样?同样,我所改变的只是该示例中的URL。

           addAll: function(){
                var el = this.el;
                el.hide().empty();
                console.dir(this.model);
                this.model.each(function(tweet){
                    var view = new TweetView({model: tweet});
                    el.append(view.render().el);
                });
                el.slideDown(500);
            }  

1 个答案:

答案 0 :(得分:0)

在变量中使用对象的字符串表示,可以使用$.parseJSON()将其转换为js对象,然后像往常一样使用它。

  var result = "[
 {'appLayerId':'6002',
  'name':'US',
  'description':'test',
  'dataSource':'POINT',
  'status':{
      'status':'Success',
      'reason':'None',
      'otherInfo':null
      }
  }
 ]";

 var resultObject = $.parseJSON(result);
 var subObject1 = resultObject[0];
 var appLayerId1 = subObject1.appLayerId;
希望这有帮助。