gpt4 book ai didi

javascript - 如何引用匿名 json 数组?

转载 作者:行者123 更新时间:2023-11-30 08:01:22 31 4
gpt4 key购买 nike

我有一个从 QuickBooks Online API 返回的大型 JSON 对象。它是有效的 JSON 并显示在控制台上(在记录它之后)。

检查控制台后,我看到以下内容:

[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]

可以扩展为:

[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]
0: Object
1: Object
2: Object
3: Object
4: Object
5: Object
6: Object
7: Object
8: Object
9: Object
10: Object
11: Object
12: Object
13: Object
14: Object
15: Object
16: Object
17: Object
18: Object
19: Object
20: Object
21: Object
22: Object
23: Object
24: Object
length: 25
__proto__: Array[0]

0: Object 扩展为:

0: Object
*_data: Object
$$hashKey: "object:82"
__proto__: Object

*_data: Object 扩展为:

Active: Array[1]
Balance: Array[1]
BalanceWithJobs: Array[1]
BillAddr: Array[1]
BillWithParent: Array[1]
DisplayName: Array[1]
FamilyName: Array[1]
Fax: Array[1]
FullyQualifiedName: Array[1]
GivenName: Array[1]
Id: Array[1]
Job: Array[1]
MetaData: Array[1]
Mobile: Array[1]
PreferredDeliveryMethod: Array[1]
PrimaryEmailAddr: Array[1]
PrimaryPhone: Array[1]
PrintOnCheckName: Array[1]
SalesTermRef: Array[1]
SyncToken: Array[1]
Taxable: Array[1]

我正在尝试访问名为 DisplayName 的属性。

用于 console.log json 数据的 Angular 代码:

$http.get('/customer').success(function(customers) {
$scope.customers = customers;
console.log($scope.customers[0]["*_data"].DisplayName[0]);
});

如何做到这一点?可以在控制台中输入一些东西来返回它的值吗?

更新:

我可以使用以下方式访问该对象:

console.log($scope.customers[0]);

但是,*_data 是一个对象。我在想类似的事情:

console.log($scope.customers[0].*_data); 会工作但是,我收到错误:

未捕获的语法错误:意外的标记 *

最佳答案

您是否将其记录到控制台?

假设你是,并且你有类似的东西:

console.log(data);

您可以像这样访问数据:

data[0]["*_data"].DisplayName[0]

即:

  1. 使用 data[0] 取消引用第一个数组项
  2. 然后访问*_data 属性。因为它的名称不是有效的属性名称,所以您必须使用 ["string"] 形式。
  3. DisplayName 值是一个数组。使用 [0] 获取第一个值。

编辑

好吧,哇,这真的很有趣!

似乎响应数据包含一个奇怪的字符,这使得访问响应变得棘手。具体来说:

> Object.keys($scope.customers[0])[0]
"*_data"
> Object.keys($scope.customers[0])[0] == "*_data"
false

嗯?为什么他们不相等?这些字符之一必须是 unicode 字符,它看起来相同但具有不同的值!

无论如何,解决这个问题很容易:

var mysteriousKey = Object.keys($scope.customers[0])[0];
var data = $scope.customers[0][mysteriousKey];

这给了我:

Object {Id: Array[1], SyncToken: Array[1], MetaData: Array[1], GivenName: Array[1], FamilyName: Array[1]…}

我认为这就是您所追求的。

关于javascript - 如何引用匿名 json 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27362509/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com