google 放置api returns 一个字符串,如何解析为JSON 对象?
google places api returns a string, how do I parse to JSON object?
在我尝试设置的小型网店中,我需要在后台使用 firebase 函数更新营业时间,并在用户创建购物车时 google 地点详细信息。
我可以使用以下说明成功地使用 POSTMAN 发送 GET 请求以检索商店的营业时间:
https://developers.google.com/places/web-service/details
但是我无法像通常处理 JSON 响应那样访问 GET 请求的响应。
我也试过了:response.result.opening_hours.json()
谁能告诉我我做错了什么?
export const mapGooglePlaces = functions.database
.ref('/shopping-carts/{shoppingCartId}/shippingManner')
.onWrite(event => {
const shippingManner = event.data.val();
const optionsAPI = {
method: 'GET',
uri: 'https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJN1t_tDeuEmsRUsoyG83frY4&key=YOUR_API_KEY',
};
return request(optionsAPI)
.then(response => {
const openingHours = response.result.opening_hours;
console.log(openingHours);
return;
})
.catch(function (err) {
console.log(err);
});
});
响应不是 JSON 对象。它是 JSON 格式的文本,必须经过解析才能创建一个对象。修改代码如下:
return request(optionsAPI)
.then(response => {
const responseObject = JSON.parse(response);
const openingHours = responseObject.result.opening_hours;
console.log(openingHours);
return;
})
.catch(function (err) {
console.log(err);
});
此外,在使用 opening_hours
或 result
的任何其他 属性 之前,您应该测试 responseObject.status === 'OK'
到 confirm that a place was found 并且至少有一个结果是返回。
在我尝试设置的小型网店中,我需要在后台使用 firebase 函数更新营业时间,并在用户创建购物车时 google 地点详细信息。
我可以使用以下说明成功地使用 POSTMAN 发送 GET 请求以检索商店的营业时间: https://developers.google.com/places/web-service/details
但是我无法像通常处理 JSON 响应那样访问 GET 请求的响应。
我也试过了:response.result.opening_hours.json()
谁能告诉我我做错了什么?
export const mapGooglePlaces = functions.database
.ref('/shopping-carts/{shoppingCartId}/shippingManner')
.onWrite(event => {
const shippingManner = event.data.val();
const optionsAPI = {
method: 'GET',
uri: 'https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJN1t_tDeuEmsRUsoyG83frY4&key=YOUR_API_KEY',
};
return request(optionsAPI)
.then(response => {
const openingHours = response.result.opening_hours;
console.log(openingHours);
return;
})
.catch(function (err) {
console.log(err);
});
});
响应不是 JSON 对象。它是 JSON 格式的文本,必须经过解析才能创建一个对象。修改代码如下:
return request(optionsAPI)
.then(response => {
const responseObject = JSON.parse(response);
const openingHours = responseObject.result.opening_hours;
console.log(openingHours);
return;
})
.catch(function (err) {
console.log(err);
});
此外,在使用 opening_hours
或 result
的任何其他 属性 之前,您应该测试 responseObject.status === 'OK'
到 confirm that a place was found 并且至少有一个结果是返回。