【问题标题】:Jquery each loop to get json datajquery每个循环获取json数据
【发布时间】:2017-05-10 23:17:00
【问题描述】:

我在 json 中有这些数据,我想加载它并在 localStorage 中使用它。

[
{
    "name": "Dexter",
    "year": "2006",
    "rating": "88%",
    "from": "USA",
    "kind": "crime / drama / thriller",
    "length": "96x55 min",
    "characters": [
      {
         "name": "Dexter Morgan",
         "actor": "Michael C. Hall"
      },
      {
         "name": "Debra Morgan",
         "actor": "Jennifer Carpenter"
      },
      {
         "name": "Angel Batista",
         "actor": "David Zayas"
      },
      {
         "name": "Hannah McKay",
         "actor": "Yvonne Strahovski"
      },
      {
         "name": "Joey Quinn",
         "actor": "Desmond Harrington"
      }
    ]
}, ... (+other tv series)]

这是我加载数据并将其获取到 var jsonObj 的代码,我用它来将其加载到 localStorage。

函数加载数据(){

    $.getJSON("data.json",function(data){
     $.each(data, function(key, val){

          var charactersArray = [];

          $.each(data.characters, function(key, val){

              charactersArray += {
                    name: val.name,
                    actor: val.actor
              };
          }); 

          var jsonObj = { 
                          name: val.name, 
                          year: val.year, 
                          rating: val.rating, 
                          from: val.from, 
                          kind: val.kind,  
                          length: val.length, 
                          characters: charactersArray
                        };....

这里唯一不起作用的是迭代以获取字符数组的值。它是空的,结果中只包含 []。有人可以帮我解决这个问题以获取相同的数据到 var jsonObj 吗?非常感谢。

【问题讨论】:

  • charactersArray.push({ name: val.name, actor: val.actor });
  • 你为什么使用 += ?
  • 你为什么不直接做var charactersArray = val.characters?你似乎没有在内部 each 循环中做任何特别的事情,这似乎是多余的
  • 还要注意没有data.characters,因为data是一个对象数组,每个对象都包含characters
  • 谢谢,它有帮助:-)

标签: jquery json each


【解决方案1】:

我已经编辑了部分代码如下希望这能工作。

$.each(data, function(key, val){
      var charactersArray = [];

      $.each(val.characters, function(ChildKey, ChildVal){
          charactersArray += {
                name: ChildVal.name,
                actor: ChildVal.actor
          };
      }); 

      var jsonObj = { 
                      name: val.name, 
                      year: val.year, 
                      rating: val.rating, 
                      from: val.from, 
                      kind: val.kind,  
                      length: val.length, 
                      characters: charactersArray
                    };});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    • 2017-08-04
    • 2013-04-08
    • 1970-01-01
    • 2013-06-11
    • 2016-12-21
    相关资源
    最近更新 更多