在javascript中读取嵌套的json

时间:2015-10-25 17:40:15

标签: javascript json cordova ionic-framework

我需要在Angular / ionic app中处理嵌套的JSON。在将XML数据集转换为json之后,我得到了这个json。返回的Json如下:

     {
       "Root": {
        "row": [
          {
            "@CompleteURL": "x.jpg"
          },
          {
            "@CompleteURL": "x.jpg"
          },
          {
            "@CompleteURL": "x.jpg"
          }
        ]
       }
     }

我需要为每一行获取@CompleteURL的值。但是,我在

之后尝试了一切
    $scope.DealImages.Root.row[i] 

但我没有获得针对CompleteURL的价值!

这是生成XML的SQL

    SELECT CompleteURL FROM Images WHERE ReferenceID=d.DealID FOR XML RAW, ROOT('Root')

这就是WebAPI将XML转换为json的方式

    for (int i = 0; i < Result.Count; i++)
    {
        XmlDocument doc = new XmlDocument();
        doc.LoadXml(Result[i].ImageURL);
        Result[i].ImageURL = JsonConvert.SerializeXmlNode(doc);
    }

这就是我正在阅读这个javascript的方式

    $scope.DealImages = JSON.parse(DealDetailAttributes.ImageURL);

这部分表现很好,因为我可以得到json。在调试器的json树中,我也可以看到值,所以这部分应该没问题。虽然我无法达到最终价值。

这是codepen链接http://codepen.io/Utsavv/pen/zvWwrR?editors=001

1 个答案:

答案 0 :(得分:0)

以下行有两个问题,只在codepen中可见:

alert(x.row[1].CompleteURL);
  1. x没有row属性,只有Root属性:它应该插入层次结构中。

  2. 最终的CompleteURL属性不存在;它必须是@CompleteURL。由于不能用点表示法编写,因此需要括号表示法。

  3. 所以你的行应该是:

    alert(x.Root.row[1]["@CompleteURL"]);