Node.js api JSON值未定义
我想从笑话API中获取笑话 代码正在成功地向API发出请求 它正在返回一个响应 但是,当我试图在控制台中记录“amount”的值时,它会打印未定义的值 我用的是洛达斯 库从JSON对象获取值,但它将值显示为未定义Node.js api JSON值未定义,node.js,json,api,lodash,Node.js,Json,Api,Lodash,我想从笑话API中获取笑话 代码正在成功地向API发出请求 它正在返回一个响应 但是,当我试图在控制台中记录“amount”的值时,它会打印未定义的值 我用的是洛达斯 库从JSON对象获取值,但它将值显示为未定义 const express = require('express') let request = require('request'); var _ = require('lodash'); let category = "Any"; let amount = 2;
const express = require('express')
let request = require('request');
var _ = require('lodash');
let category = "Any";
let amount = 2;
let jokeType = 'single';
//URL for joke api
let url = `https://v2.jokeapi.dev/joke/Any?type=${jokeType}&amount=${amount}`;
const app = express()
app.get('/', function (req, res) {
request(url,function(err,response,body){
if(err){
console.log('error:',error);
}else{
//console.log('body:',body);
var jBody = body;
console.log(_.get(jBody,'amount'));
}
});
})
app.listen(8083)
body object gives value as below
{
"error": false,
"amount": 2,
"jokes": [
{
"category": "Programming",
"type": "single",
"joke": "Hey Girl roses are red"
"flags": {
"religious": false,
"political": false,
"racist": false,
"sexist": false,
"explicit": false
},
"id": 41,
"safe": true,
"lang": "en"
},
{
"category": "Programming",
"type": "single",
"joke": "Two SQL tables sit at the bar. A query approaches and asks \"Can I
join you?\"",
"flags": {
"religious": false,
"political": false,
"racist": false,
"sexist": false,
"explicit": false
},
"id": 221,
"safe": true,
"lang": "en"
}
]
}
首先,检查body是一个对象
console.log('Type of body is:',typeof(body))
我认为它是一个字符串(json格式),所以你需要使用body=json.parse(body)
来解析它,然后使用body.amount
来获得你不需要lodash的金额,简单地使用body.amount
谢谢它的工作