我收到来自服务的以下回复
[ { recipient_id: 'default',
text: 'Hello, how can I help?' } ]
我需要检索响应的text
部分。我可以像下面这样用python
json_response = response.json()
reply = json_response[0]['text']
但是我现在需要为另一个项目在NodeJS中检索text
部分。所以我尝试了下面的代码,但它输出undefined
var obj = JSON.parse(response)
console.log(obj[0]['text'])
有人可以建议吗?
编辑:
发出POST请求的方式是
request.post(
'http://path-to-service',
{ json: { 'query': msg} },
function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body)
var obj = JSON.parse(body)
console.log(obj[0]['text'])
}
问题是服务将响应作为python字典数组返回。因此response[0]
本质上是python字典
{ recipient_id: 'default',
text: 'Hello, how can I help?' }
问题是,如何从此字典中检索键text
的值。
答案 0 :(得分:1)
我认为您的响应已经作为JSON
对象出现,因此无需再次解析。
var obj = [ { recipient_id: 'default',
text: 'Hello, how can I help?' } ];
console.log(obj[0].text);
答案 1 :(得分:0)
尝试代码
const round = v => Math.round(v);
const clamp = v => v < 1.3 ? 1.3 : v;
const getScore = iteration => factor =>
iteration < 2 ? 1 :
iteration === 2 ? 6 :
(getScore(iteration - 1)(factor) * factor);
const compose = (fn, ...transformArgsFns) => (...args) => {
const newArgs = transformArgsFns.map((tranformArgFn, i) => tranformArgFn(args[i]));
return fn(...newArgs);
}
const getRoundedClampedScore = compose(getScore, round, clamp);
console.log(getRoundedClampedScore(1)(5))
console.log(getRoundedClampedScore(3.3)(5))
console.log(getRoundedClampedScore(3.3)(1))
printf
var body = {'query': 'msg', 'name': 'my name is nodejs'}
var obj = JSON.parse(body);
console.log(obj.query);
console.log(obj.name);