从JSON多维数组获取值?

时间:2019-01-02 16:11:27

标签: javascript json

我有一个如下所示的JSON数组:

{
    "id": 258,
    "rawId": null,
    "displayName": null,
    "name": {
        "givenName": "my ame",
        "honorificSuffix": "",
        "formatted": "my ame",
        "middleName": "",
        "familyName": "",
        "honorificPrefix": ""
    },
    "nickname": "",
    "phoneNumbers": [{
        "value": "23423442342424",
        "pref": false,
        "id": 0,
        "type": "mobile"
    }],
    "emails": null,
    "addresses": null,
    "ims": null,
    "organizations": [{
        "pref": "false",
        "title": "",
        "name": "",
        "department": "",
        "type": null
    }],
    "birthday": null,
    "note": "",
    "photos": null,
    "categories": null,
    "urls": null
}

我需要从此JSON获取phoneNumbers >>值。

所以我尝试了一些类似的事情:

var d = JSON.parse(test); alert(test[0].phoneNumbers.value);

变量test是上面显示的JSON。

我也尝试过:

alert(d[0].phoneNumbers.value);

alert(test.phoneNumbers.value);

但以上方法均无效。

我的代码中是否缺少某些内容?

谢谢。

1 个答案:

答案 0 :(得分:1)

您显示给我们的是一个JSON字符串(解析后提供一个JS对象),而不是一个数组。

因此function Sortowanie() { if(SpreadsheetApp.getActiveSpreadsheet().getName() == 'Name of sheet'){ var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange('A1:C35').activate(); spreadsheet.getActiveRange().offset(1, 0, spreadsheet.getActiveRange().getNumRows() - 1).sort({column: 3, ascending: false}); spreadsheet.getRange('E9').activate(); } } 将不起作用,而d[0].phoneNumbers将起作用并为您提供一个数组。

由于它会给您一个数组,因此d.phoneNumbers将不起作用,而d.phoneNumbers.value将起作用。