Извлекайте вложенные объекты из Woocommerce JSON, используя Javascript - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь получить доступ к третьему объекту, который вложен в массив «meta_data» из веб-крючка Woocommerce, чтобы получить доступ к следующим свойствам:

"value": "FEB-ID-75250",
"label": "Landscape JPG"

Я могу получить первый объект в массиве, которыйвозвращает «Вариант первый» с

event.line_items[0].meta_data[0].value, но я не уверен, как получить объекты подобным образом, как если бы вы обращались к массивам с помощью [1]

. Я могу легко получить доступ к электронной почте и номеру заказасо следующим

var orderNumber = event.number;

var clientEmail = event.billing.email;

Как я могу получить доступ к третьему объекту в массиве и получить его свойства?

{
    "customer_note": "",
    "billing": {
    "email": "mail@example.com"
    },
    "cart_hash": "f4bf32719d056bac6d6442ed6598cc9d",
    "meta_data": [
    {
        "id": 812,
        "key": "_wcj_order_number",
        "value": "2012371633"
    }
    ],
    "line_items": [
    {
        "id": 7,
        "meta_data": [
        {
            "id": 70,
            "key": "Options",
            "value": "Option One"
        },
        {
            "id": 71,
            "key": "File Upload",
            "value": "mountain.jpg | https://example.com/uploads/130463-mountain.jpg | (£0.00)"
        },
        {
            "id": 72,
            "key": "_WC_order_meta_data",
            "value": [
            {
                "type": "select",
                "name": "select-1555526171583",
                "label": "Options",
                "value": {
                "2": {
                    "i": 2,
                    "value": "FEB-ID-75250",
                    "label": "Landscape JPG"
                }
                },
                "is_fee": false,
                "form_data": {
                "type": "select",
                "form_rules": {
                    "pric_cal_option_once": false,
                    "pric_use_as_fee": false,
                    "fee_label": "Fee",
                    "render_after_acb": false,
                    "disp_hide_options_price": false
                }
                },
                "meta_id": 70
            },
            {
                "label": "File Upload",
                "value": {
                "file_name": "mountain.jpg"
                },
                "is_fee": false,
                "price": 0.0001,
                "quanity_depend": false,
                "form_data": {
                "type": "file",
                "elementId": "wc-file-1549637467462",
                "label": "File Upload",
                "enablePrice": true,
                "pricingType": "multiply",
                "price": "0.0001",
                "ajax_upload": true,
                "name": "file-1549637467462",
                "custom_style": true,
                "cl_rule": "show",
                "col": 6,
                "form_id": 63,
                "form_rules": {
                    "pric_cal_option_once": false,
                    "pric_use_as_fee": false,
                    "fee_label": "Fee",
                    "render_after_acb": false,
                    "disp_hide_options_price": false
                }
                },
                "meta_id": 71
            }
            ]
        }
        ],
        "sku": "",
        "price": 0.0002
    }
    ],
    "tax_lines": [],
    "shipping_lines": [],
    "fee_lines": [],
    "coupon_lines": [],
    "refunds": []
}

Эта ссылка - тип вещей, которые я ищу, но я немного потерян с этим

https://medium.com/javascript-inside/safely-accessing-deeply-nested-values-in-javascript-99bf72a0855a

1 Ответ

0 голосов
/ 11 февраля 2019

Это был ответ ниже, я думал, что meta_data [0] ссылался на массив (единственный присутствующий), но он на самом деле использует объект

event.line_items[0].meta_data[1].value[0].value[0].value

...