我正在使用dialogflow-fulfillment创建一个机器人,并且正在使用Google Place API提取有关医院的其他信息。
为了示例,我做出了一个虚拟响应,该响应由Google Place API返回,这里是链接:http://www.mocky.io/v2/5c2b9f9e3000007000abafe3
{
"candidates" : [
{
"formatted_address" : "140 George St, The Rocks NSW 2000, Australia",
"name" : "Museum of Contemporary Art Australia",
"photos" : [
{
"height" : 3492,
"html_attributions" : [
"\u003ca href=\"https://maps.google.com/maps/contrib/105784220914426417603/photos\"\u003eKeith Chung\u003c/a\u003e"
],
"photo_reference" : "CmRaAAAAaGaCX-kivNEaJ-z97AduTYgW3d98uv53-8skNrS1k1GTgOtiQ1-Z2gfWJydrpkrshuV_kHPKizl088dezEJgIxYGoTWqtJgah-u_I46qNNYMfUbk8LKBZqxzkHyIL1nWEhBO6lPa0NgvlyLGBrXpXFPUGhT0lAUj_oCiOWV2MEYdBeKf-kTtgg",
"width" : 4656
}
]
}
],
"status" : "OK"
}
我需要从Google Place API返回的JSON解析我选择的值。例如,如果我必须使用Python从上面的JSON解析'name'
的值,我会这样做:
import requests, json
api_key = ''
r = requests.get('https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=Museum%20of%20Contemporary%20Art%20Australia&inputtype=textquery&fields=photos,formatted_address,name&key=' + api_key)
x = r.json()
y = x['candidates']
print(y[0]['name'])
上面的工作代码很清楚,而且效果很好。考虑到我对Nodejs的经验不足,请让我知道Nodejs中类似的内容来解析值,例如'name'
的值吗?
您的宝贵答复将鼓励我。
P.S:谦虚,这个问题涉及首先调用Google Place API,然后解析返回的JSON中的值。请按照上面Python代码中给出的步骤进行操作,以更好地理解。
答案 0 :(得分:0)
在异步HTTP请求中获取API响应(有大量的request
之类的npm库可以帮助您自动设置标头等),然后使用标准库JSON.parse(body)
获得一个普通的JavaScript对象,该对象包含API响应的结构化表示。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse