我的代码
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开发的新手。我尝试了很多,但我没有得到答案。
任何人都可以帮助我。
答案 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。
答案 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"]);