因此,我需要使用node.js从第三方网站获取值。数据为JSON格式。我的代码可用于其他类似原因,但不适用于此原因。我需要从相应项目中扣除价格。数据的结构方式如下:
{
"Glock-18 | Weasel (Battle-Scarred)": 0.52,
"PP-Bizon | Photic Zone (Minimal Wear)": 0.18,
"SSG 08 | Ghost Crusader (Field-Tested)": 0.62,
"Spectrum Case Key": 2.63,
"Sticker | shroud (Foil) | Krakow 2017": 5.62,
"Sticker | North | London 2018": 0.2,
"XM1014 | Slipstream (Field-Tested)": 0.08
}
我当前的代码如下:
var Request = require("request");
var name ="Sticker | shroud (Foil) | Krakow 2017";
Request.get("url", (error, response, body) => {
if(error) {
return console.dir(error);
}
var object = JSON.parse(body);
var price = object.name;
console.log("price", price);
});
有什么想法为什么我的价格总是输出为未定义?
答案 0 :(得分:2)
您应该尝试使用var price = object[name];
,因为您想使用name
作为变量。 object.name
不会这样做。
您随时可以使用console.log(object);
进行故障排除,以说服自己获取了正确的内容。
为获得最佳结果,请考虑以这种方式进行错误检查。 (永远不要信任网站,是吗?)
var object;
try {
object = JSON.parse(body);
catch (e) {
return console.dir('body not parseable', body, e);
}
if (!object) return console.dir('no object retrieved');
if (!object.hasOwnProperty(name)) return console.dir ('property not found', name);
var price = object[name];
console.log("price", price);