我正在使用javascript中的应用程序,我有这个json对象(这是实际json对象的简化示例)
{
"data": [
"user": {
"pictures"{
"sizes"[
0: {
"link": "http://www"
},
1: {
"link": "http://"
}
]
}
}
]
}
我想获得链接的价值,所以我尝试data.user.pictures.sizes[0].link
,它返回了一个错误。如何获得正确的价值?
编辑:我使用map函数循环数据对象,因此我可以在html页面中显示值。它适用于大多数其他项目,除了图片大小,我似乎无法获得sizes数组中第二项的值。
答案 0 :(得分:3)
从数据中可以看出,'data'包含数组,而size包含包含属性0和1的对象的数组,所以这样做
data[0].user.pictures.sizes[0].0.link
答案 1 :(得分:1)
首先,你需要有"pictures"
和"sizes"
的冒号:)
其次,这取决于你的结构。
例如:
如果您需要使用示例中显示的数组:
var a = {
"data": [
{
"user": {
"pictures": {
"sizes": [
{
0: {
"link": "http://www"
}
},
{
1: {
"link": "http://"
}
}
]
}
}
}
]
}
console.log(a.data[0].user.pictures.sizes[0][0].link);
或者你只需要一个没有数组的json:
var b = {
"data": {
"user": {
"pictures": {
"sizes": {
0: {
"link": "http://www"
},
1: {
"link": "http://"
}
}
}
}
}
}
console.log(b.data.user.pictures.sizes[0].link);
或者你甚至可以混合它们:
var c = {
"data": {
"user": {
"pictures": {
"sizes": [
{
"link": "http://www"
},
{
"link": "http://"
}
]
}
}
}
}
console.log(c.data.user.pictures.sizes[0].link);
注意"sizes"
和b
中的c
与a
的双数组之间的细微差别。这是因为带索引作为键的json与数组相同。检查这个例子:
var example = [
{
0: "example00",
1: "example01",
2: "example02"
},
{
0: "example10",
1: "example11",
2: "example12"
},
]
console.log(example[0][1]); // == example01
您可以看到example
数组
希望有所帮助:)
答案 2 :(得分:0)
你的JSON错了,应该如下:
var js = {
"data": {
"user":{
"pictures":{
"sizes":[
{
"link":"http://www"
},
{
"link":"http://"
}
]
}
}
}
}
获取值:
js.data.user.pictures.sizes[0].link