Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取深嵌套json对象的值?_Javascript_Json - Fatal编程技术网

Javascript 如何获取深嵌套json对象的值?

Javascript 如何获取深嵌套json对象的值?,javascript,json,Javascript,Json,我正在用javascript开发一个应用程序,我有一个json对象,这是一个实际json对象的简化示例 { "data": [ "user": { "pictures"{ "sizes"[ 0: { "link": "http://www" }, 1: { "link": "http://" } ] }

我正在用javascript开发一个应用程序,我有一个json对象,这是一个实际json对象的简化示例

{
  "data": [
    "user": {
      "pictures"{
        "sizes"[
          0: {
            "link": "http://www"
          },
          1: {
            "link": "http://"
          }
        ]
      }
    }
  ]
}
我想获取link的值,所以我尝试了data.user.pictures.size[0].link,它返回了一个错误。如何获得正确的值


编辑:我使用一个映射函数来循环数据对象,这样我就可以在html页面中显示值。它适用于大多数其他项目,除了图片大小,我似乎无法获得大小数组中第二个项目的值

从数据中,它显示“数据”包含数组,而“大小”包含包含属性0和1的对象的数组,所以请执行此操作

data[0].user.pictures.sizes[0].0.link

您的JSON错误,应该如下所示:

var js = {  
   "data": {  
      "user":{  
         "pictures":{  
            "sizes":[  
               {  
                  "link":"http://www"
               },
               {  
                  "link":"http://"
               }
            ]
         }
      }
   }
}
要获取值,请执行以下操作:

js.data.user.pictures.sizes[0].link

首先,您需要为图片和尺寸设置冒号:

其次,这取决于你的结构是什么

例如:

如果需要使用示例中显示的数组,请执行以下操作:

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);
注意b和c中大小的细微差别以及a的双数组。这是因为索引为键的json与数组相同。检查此示例:

var example = [
    {
        0: "example00",
        1: "example01",
        2: "example02"
    },
    {
        0: "example10",
        1: "example11",
        2: "example12"
    },
]

console.log(example[0][1]); // == example01
您可以看到示例数组中有2个数组


希望有帮助:

您使用什么工具和编程语言?是Javascript吗?你能分享更多的代码吗?你使用什么语言?图片后面没有分号。在你的原始代码中可以吗?我使用javascript,在json对象上映射,在html页面中显示json对象。很抱歉,json格式不是原始格式,我只是尝试复制它。可能是重复的。我已经在使用映射函数围绕对象循环,但在picture.size中,我只想查看第二个数组项的值。这很有帮助。谢谢看起来真正的问题不是对象的路径,而是有一个值为null的链接,该链接呈现了一个错误,无法显示其余的数据。