杰森给出了错误

时间:2013-06-17 09:15:26

标签: javascript json

我的代码

function getUIContent(){
    alert('hi');
    var jsn = '{"channels":[{"name":"video1","image":"images/bodyguard.jpg"},{"name":"video2","image":"images/bodyguard.jpg"},{"name":"video3","image":"images/bodyguard.jpg"},'+
    ']}';
}

现在我想访问频道的名称

我试过

var channels = jsn.channels[0].name;
alert(channels);

但它给出了错误。我也想知道如何获得频道的长度。

我是javascript开发的新手。我尝试了很多,但我没有得到答案。

任何人都可以帮助我。

5 个答案:

答案 0 :(得分:6)

您必须删除前导和尾随'标记,以便您的JSON成为对象而不是字符串。正如其他人提到的那样删除最后一个逗号,

所以不要这样:

var jsn = '{"channels":[{"name":"video1","image":"images/bodyguard.jpg"},{"name":"video2","image":"images/bodyguard.jpg"},{"name":"video3","image":"images/bodyguard.jpg"},'+
    ']}';

你有这个:

var jsn = {"channels":[{"name":"video1","image":"images/bodyguard.jpg"},{"name":"video2","image":"images/bodyguard.jpg"},{"name":"video3","image":"images/bodyguard.jpg"}]};

答案 1 :(得分:1)

尝试删除最后一个','以使其有效JSON:

  var jsn = '{"channels":[{"name":"video1","image":"images/bodyguard.jpg"},{"name":"video2","image":"images/bodyguard.jpg"},{"name":"video3","image":"images/bodyguard.jpg"}'+
             ']}';

编辑:/ 当然,在使用此字符串之前必须使用JSON.parse 就像这里:http://jsfiddle.net/4j3Rh/

答案 2 :(得分:1)

,(对象)末尾有{}(逗号)。

应该是:

var jsn = '{"channels":[{"name":"video1","image":"images/bodyguard.jpg"},{"name":"video2","image":"images/bodyguard.jpg"},{"name":"video3","image":"images/bodyguard.jpg"}'+
                 ']}';

答案 3 :(得分:1)

首先,json对象有效。

{
    "channels": [
        {
            "name": "video1",
            "image": "images/bodyguard.jpg"
        },
        {
            "name": "video2",
            "image": "images/bodyguard.jpg"
        },
        {
            "name": "video3",
            "image": "images/bodyguard.jpg"
        }, //   <-------------remove this comma

    ]
}

其次,此时这是一个Json String,必须将其反序列化为一个对象,以便我们可以使用.表示法访问其属性。这可以使用大多数现代浏览器中包含的JSON.parse()方法来完成。

var obj = JSON.parse(jsn);

然后按如下方式从对象访问属性:

var size = obj.channels.length;

在您的Javascript开发过程中,如果您遇到更多JSON错误,您可能需要使用JsonLint tool,这样您就可以通过复制并粘贴到网站来验证您的json。

工作示例: http://jsfiddle.net/3v2z3/

答案 4 :(得分:-1)

尝试以下,

var jsn = '{"channels":[{"name":"video1","image":"images/bodyguard.jpg"},{"name":"video2","image":"images/bodyguard.jpg"},{"name":"video3","image":"images/bodyguard.jpg"}]}'; 

var obj = jQuery.parseJSON(jsn); //If jquery used [or]

var obj = JSON.parse(jsn);

alert(obj.channels[0]["name"]);