我正在尝试从JSON获取属性。如何从下面的JSON正文获取属性url?
我在控制台中收到未定义的内容
这是我的
//发货地图跟踪
exports.shipmentmaptracking = functions.https.onRequest((req, res) => {
var request = require("request");
var trackid = req.body.Tracking;
let d = {
"tracking_pages": [
{
"branded_tracking_theme_guid": "440bed90-617b-43ba-bd0e-31512ac66e23",
"tracking_number": "9400111699000367101815",
"carrier_code": "stamps_com",
"service_code": "usps_priority_mail",
}
]
};
var options = {
method: 'POST',
url: 'https://api.shipengine.com/v-beta/tracking_page',
headers: {
'Content-Type': 'application/json',
'api-key': 'Wyo4gpVIXfElQSDgF9p/L9aQ9kX3Um60X8hRSo8VAes'
},
body: JSON.stringify(d),
};
console.log('Sending a ' + options.method + ' request to ' + options.url);
request(options, function (error, response, body) {
console.log('Successfully received a response from ShipEngine')
if (error) {
console.log('An error was returned: ' + error.message);
res.status(500).send(error.message);
}
else if (response.statusCode >= 400) {
console.log('An error was returned: ' + response.statusCode + ' ' + response.statusMessage);
console.log(body);
res.status(response.statusCode).send(body);
}
else {
console.log('A successful response was returned');
console.log(body);
console.log(d.tracking_pages[0].url);
//res.status(200).send({'URL':shippp.tracking_pages[0].url});
console.log('statusCode:', response && response.statusCode);
}
});
});
这是我的Json输出 如何从下面的JSON获取属性URL
{
"tracking_pages": [
{
"carrier_code": "stamps_com",
"tracking_number": "9400111699000367101815",
"branded_tracking_theme_guid": "440bed90-617b-43ba-bd0e-31512ac66e23",
"token": "l1XKcsYaEECc903KqBvtaA",
"url": "https://track.shipengine.com/se/v1/g/l1XKcsYaEECc903KqBvtaA",
"service_code": "usps_priority_mail"
}
],
"page": 0,
"pages": 0,
"total": 0
}
预先感谢
答案 0 :(得分:2)
只需从数据中获取它-请注意,我给整个对象起了一个名字(“数据”),并且tracking_pages是一个数组-因此,您必须使用索引号来获取它(假设会有不止一个-否则就不需要使用数组)-然后它只是其中的url属性。
data.tracking_pages[0].url;
显然,您需要在选择上更加复杂-我假设实际数据更加复杂。您可以使用JSON.parse()将json转换为常规对象。
但是它就像遍历对象中的父对象并正确选择选择器一样简单。
let data = {
"tracking_pages": [
{
"carrier_code": "stamps_com",
"tracking_number": "9400111699000367101815",
"branded_tracking_theme_guid": "440bed90-617b-43ba-bd0e-31512ac66e23",
"token": "FmUfsOmjdEuioBuen1lMVA",
"url": "https://track.shipengine.com/se/v1/g/FmUfsOmjdEuioBuen1lMVA",
"service_code": "usps_priority_mail"
}
],
"page": 0,
"pages": 0,
"total": 0
}
let trackingUrl = data.tracking_pages[0].url;
console.log(trackingUrl) // gives https://track.shipengine.com/se/v1/g/FmUfsOmjdEuioBuen1lMVA
答案 1 :(得分:1)
您可以使用。访问对象中url属性的符号
var a={
"tracking_pages": [
{
"carrier_code": "stamps_com",
"tracking_number": "9400111699000367101815",
"branded_tracking_theme_guid": "440bed90-617b-43ba-bd0e-31512ac66e23",
"token": "FmUfsOmjdEuioBuen1lMVA",
"url": "https://track.shipengine.com/se/v1/g/FmUfsOmjdEuioBuen1lMVA",
"service_code": "usps_priority_mail"
}
],
"page": 0,
"pages": 0,
"total": 0
};
console.log(a.tracking_pages[0].url)
答案 2 :(得分:1)
预期输出不清楚。如果tracking_pages
包含多个url
,则可以使用map
返回网址数组
let da = {
"tracking_pages": [{
"carrier_code": "stamps_com",
"tracking_number": "9400111699000367101815",
"branded_tracking_theme_guid": "440bed90-617b-43ba-bd0e-31512ac66e23",
"token": "FmUfsOmjdEuioBuen1lMVA",
"url": "https://track.shipengine.com/se/v1/g/FmUfsOmjdEuioBuen1lMVA",
"service_code": "usps_priority_mail"
}],
"page": 0,
"pages": 0,
"total": 0
}
let urlAr = da.tracking_pages.map(item => item.url);
console.log(urlAr)