JSON中内部对象的未定义长度

时间:2017-02-24 11:10:11

标签: javascript json

我的节点应用程序收到此json:

Array ( 
  [0] => '2017-02-22'
  [1] => '2017-02-23'
  [2] => '2017-04-03'
  [3] => '2017-04-04'
  [4] => '2017-04-05'
  [5] => '2017-04-06'
)

现在,我用这段代码读了这个json:

{ 
"team":"Man UTD"
,"playersAndRoles":
    {
        "Pogba":["Midfielder"]
        ,"Martial":["Striker","Wing"]
        ,"Ibrahimovic":["Striker"]
    }
}

但是,长度未定义。 JSON有效。但我不确定json代表数组的方式是否正确。 我可以修改JSON。如果是以错误的方式写的。

但收到的JSON似乎没问题。因为我可以这样做:

var jsonBody = req.body;
console.log('jsonBody.playersAndRoles.length',    jsonBody.playersAndRoles.length);

所以我猜错误的部分是" playersAndRoles"宾语。这是对的吗?

PS:如果我尝试运行:

console.log('jsonBody.team', jsonBody.team); //Prints Man UTD

然后它会抛出一个例外。

1 个答案:

答案 0 :(得分:0)

jsonBody.playersAndRole不是数组。 jsonBody.playersAndRole是对象。因此,如果你想将playerAndRole作为数组,你必须像这样制作json。

{
   "team":"Man UTD",
   "playersAndRoles":[
      {
         "Pogba":[
            "Midfielder"
         ]
      },
      {
         "Martial":[
            "Striker",
            "Wing"
         ]
      },
      {
         "Ibrahimovic":[
            "Striker"
         ]
      }
   ]
}