如何使用角度js访问这个复杂的json对象?

时间:2016-03-23 13:32:36

标签: angularjs json object

$scope.data = {
    "statusCode": 200,
    "message": "success",
    "result": {
        "data2": [
            {
                "viewTitle": "one",
                "viewType": 1,
                "viewData": "{\"data3\":{\"_id\":\"one\"," +
                "\"channelId\":\"0\",\"channelName\":\"animals\"," +
                "\"rate\":3.5,\"visited\":21,\"meta\":{\"currency\":\"t\"" +
                ",\"size\":\"5 mb\",\"updatedAt\":\"2 2 2016\"" +
                ",\"createdAt\":\"2 2 2016\",\"duration\":\"3 minutes \"}" +
                ",\"thumbnail\":\"127.0.0.1\"" +
                ",\"banner\":\"127.0.0.1\"" +
                ",\"trailerUrl\":\"\",\"url\":\"127.0.0.1\"" +
                ",\"desc\":\"my informations \"" +
                ",\"title\":\"my videos number 4\",\"packages\"" +
                ":[{\"_id\":\"1\",\"price\":500" +
                ",\"type\":\"purchase\"}],\"packageId\":\"2\"" +
                ",\"packagePrice\":500,\"userFavorite\":0,\"userRate\":0,\"locked\":1}}"
            }
        ]
    }
};`

我尝试访问例如chanelName或大小,请帮助解决。

3 个答案:

答案 0 :(得分:0)

首先,通过JSON.parse();将JSON字符串转换为对象 var data = JSON.parse(); //data is now the result of JSON.parse
然后在$scope.data

中访问要使用的属性

答案 1 :(得分:0)

我为您的问题创建了一个CodePen: http://codepen.io/JohannesFerner/pen/PNmmBd/

您的转义JSON有JSON.parse(<escaped JSON property>)angular.fromJson(<escaped JSON property>)(请参阅上面的评论)。

如果不进一步了解您的后端,我建议您不要将转义的JSON提供给客户端。

答案 2 :(得分:0)

可以像这样访问第一级对象。

person.result.data2[0].viewTitle

JSON.parse是解析复杂对象的最简单方法。我在下面给出了我的例子

http://jsfiddle.net/MisterFantastic/u8bhc1ds/1/

JSON.parse(person.result.data2[0].viewData)

对于复杂对象,请参阅此链接。 AngularJS format JSON string output