【问题标题】:Accessing Array Uncaught TypeError: Cannot read property of undefined访问数组未捕获类型错误:无法读取未定义的属性
【发布时间】:2015-08-07 15:01:49
【问题描述】:

我想从我的 jquery 帖子中访问 request_uuid,但无论我尝试什么都行不通。我不断收到此错误消息:

未捕获的类型错误:无法读取未定义的属性“request_uuid”

这是我的数组:

Array(
[status] => 201
[response] => Array
    (
        [api_id] => 6562c748-0366-11e5-84ff-22000ac89064
        [message] => call fired
        [request_uuid] => efa98dad-8869-4b72-ad99-a149f914bda5
    ))

我正在尝试这样访问它:

console.log(data.response['request_uuid']);

我应该如何访问它以获得request_uuid

【问题讨论】:

  • 试试这个 console.log(data.response[0]['request_uuid']);
  • console.log(data[response]['request_uuid']);
  • 很抱歉没有上述作品!我不断收到错误消息
  • 好的,然后 Leo 回答如果两者都是数组,然后使用 console.log(data[0].response[0]['request_uuid']); .或使用正确的数组更新您的答案作为回答

标签: jquery arrays ajax multidimensional-array


【解决方案1】:

如果您的数据是一个数组并且您的响应也是,您必须在此之前解析第一个 child(0):

[] = 数组():

var data = [{
    'status': 201,
    'response': [{
        'api_id': "6562c748-0366-11e5-84ff-22000ac89064",
        'message': "call fired",
        'request_uuid': "efa98dad-8869-4b72-ad99-a149f914bda5"
    }]
}];

console.log(data[0].response[0]['request_uuid']);

【讨论】:

  • @jhondano 正确的数组意味着 .答案中提到的正确javascript格式的数组:)
  • @jhondano 因为您的服务器端发送一个数组,这意味着您可以拥有多个数据对象,例如 data[0]、data[1] 等。您的响应对象也是如此,例如响应 [0]、响应 [1]。理解它的一个好方法是调用console.log(data)。在 Chrome 开发工具(或类似工具)上打开它,你会看到它什么时候是数组,什么时候是对象的属性
  • 是的,感谢您的回复...实际上,上面发布的数组正是来自 console.log(data)。我很困惑如何以正确的 jquery 格式获取我的数组?
  • @jhondano 它实际上是一个 Javascript 对象,在您的情况下,服务器端以数组的形式响应。请记住,每次读取 Array() 时,都可以有 1 个或多个,因此必须将其称为数组。也许这个理论会对你有所帮助spring.io/understanding/JSON
猜你喜欢
  • 2021-12-22
  • 2015-01-06
  • 2017-07-26
  • 2019-02-26
  • 2021-12-25
  • 1970-01-01
  • 2017-02-11
相关资源
最近更新 更多