从JSON中提取值

时间:2018-10-20 12:44:17

标签: node.js json

因此,我需要使用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);
});

有什么想法为什么我的价格总是输出为未定义?

1 个答案:

答案 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);