Tahání hodnotu z JSON

hlasů
0

Takže musím vytáhnout hodnoty z webové stránky 3. strany s node.js. Data jsou ve formátu JSON. Můj kód pracuje pro jiné podobné příčiny, ale ne pro tento jeden. Musím vytáhnout cenu ze podle bodu. Data je strukturován takto:

 {
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
}

Můj současný kód vypadá takto:

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);
});

Nějaké nápady, proč moje cena je vždy vystupovat jako nedefinovaná?

Položena 20/10/2018 v 12:44
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
2

Jste shoud pokusí použít var price = object[name];, protože chcete použít namejako proměnnou. object.namenedělá.

Můžete vždy řešit s console.log(object);přesvědčit sami jste vzali správné věci.

Pro dosažení nejlepších výsledků, zvažte dělá kontrolu chyb tímto způsobem. (Nikdy nevěř webové stránky, ne?)

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);
Odpovězeno 20/10/2018 v 13:03
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more