使用 Javascript 从 Woocommerce JSON webhook 中提取嵌套对象
Extract nested objects from Woocommerce JSON webhook using Javascript
我正在尝试从 Woocommerce webhook 访问嵌套在 "meta_data" 数组中的第三个对象以访问以下属性:
"value": "FEB-ID-75250",
"label": "Landscape JPG"
我可以用
得到数组中 returns "Option One" 的第一个对象
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": []
}
这 link 是我正在寻找的东西类型,但我有点迷失了它
这是下面的答案,我认为 meta_data[0] 引用了一个数组(唯一存在的数组)但它实际上使用了对象
event.line_items[0].meta_data[1].value[0].value[0].value
我正在尝试从 Woocommerce webhook 访问嵌套在 "meta_data" 数组中的第三个对象以访问以下属性:
"value": "FEB-ID-75250",
"label": "Landscape JPG"
我可以用
得到数组中 returns "Option One" 的第一个对象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": []
}
这 link 是我正在寻找的东西类型,但我有点迷失了它
这是下面的答案,我认为 meta_data[0] 引用了一个数组(唯一存在的数组)但它实际上使用了对象
event.line_items[0].meta_data[1].value[0].value[0].value