我如何使这个输出更小更整洁的字符串?
How would I make this output a smaller more neat string?
我一直在摆弄 googles API,我正在尝试创建一个终端命令,告诉我离某物有多远以及到达那里需要多长时间。
我遇到的问题是当我 运行:
var axios = require('axios');
var config = {
method: 'get',
url: 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=Washington%2C%20DC&destinations=New%20York%20City%2C%20NY&units=imperial&key=AIzaSyCbwuhNvOJQrYWnLRF6WjzJeOcnhYYfpZA',
headers: {}
};
axios(config)
.then(function(response) {
console.log(JSON.stringify(response.data.rows));
})
.catch(function(error) {
console.log(error);
});
现在正在输出:
[{"elements":[{"distance":{"text":"225 mi","value":361918},"duration":{"text":"3 hours 52 mins","value":13938},"status":"OK"}]}]
我希望输出格式显示如下:
you are 225 miles or 3 hours 52 mins away
我如何使输出看起来像第二个提供的示例?
response.data.rows
是一个 JSON 对象。 JSON.stringify()
将其转换为您不需要的字符串 - 您需要对象。
如果不进行字符串化,可以用response.data.rows[0].elements[0].distance.text
获取距离字符串,用response.data.rows[0].elements[0].duration.text
获取时间
你可以试试这个,但我假设你是按这个顺序接收数据的
我建议您也添加 null
检查。
let data = [{
"elements": [{
"distance": {
"text": "225 mi",
"value": 361918
},
"duration": {
"text": "3 hours 52 mins",
"value": 13938
},
"status": "OK"
}]
}];
let firstElement = data[0].elements[0];
let constructedString = `You are ${firstElement.distance.text} or ${firstElement.duration.text} away`;
console.log(constructedString);
您可以使用以下 one-liner:
var data = [{"elements":[{ "distance": {"text": "225 mi", "value": 361918}, "duration": {"text": "3 hours 52 mins", "value": 13938}, "status": "OK"}]}];
console.log(`you are ${ data[0].elements[0].distance.text} or ${data[0].elements[0].duration.text} away`);
我一直在摆弄 googles API,我正在尝试创建一个终端命令,告诉我离某物有多远以及到达那里需要多长时间。 我遇到的问题是当我 运行:
var axios = require('axios');
var config = {
method: 'get',
url: 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=Washington%2C%20DC&destinations=New%20York%20City%2C%20NY&units=imperial&key=AIzaSyCbwuhNvOJQrYWnLRF6WjzJeOcnhYYfpZA',
headers: {}
};
axios(config)
.then(function(response) {
console.log(JSON.stringify(response.data.rows));
})
.catch(function(error) {
console.log(error);
});
现在正在输出:
[{"elements":[{"distance":{"text":"225 mi","value":361918},"duration":{"text":"3 hours 52 mins","value":13938},"status":"OK"}]}]
我希望输出格式显示如下:
you are 225 miles or 3 hours 52 mins away
我如何使输出看起来像第二个提供的示例?
response.data.rows
是一个 JSON 对象。 JSON.stringify()
将其转换为您不需要的字符串 - 您需要对象。
如果不进行字符串化,可以用response.data.rows[0].elements[0].distance.text
获取距离字符串,用response.data.rows[0].elements[0].duration.text
你可以试试这个,但我假设你是按这个顺序接收数据的
我建议您也添加 null
检查。
let data = [{
"elements": [{
"distance": {
"text": "225 mi",
"value": 361918
},
"duration": {
"text": "3 hours 52 mins",
"value": 13938
},
"status": "OK"
}]
}];
let firstElement = data[0].elements[0];
let constructedString = `You are ${firstElement.distance.text} or ${firstElement.duration.text} away`;
console.log(constructedString);
您可以使用以下 one-liner:
var data = [{"elements":[{ "distance": {"text": "225 mi", "value": 361918}, "duration": {"text": "3 hours 52 mins", "value": 13938}, "status": "OK"}]}];
console.log(`you are ${ data[0].elements[0].distance.text} or ${data[0].elements[0].duration.text} away`);