Node.js 从JSON中提取值
因此,我需要使用node.js从第三方网站获取一个值。数据是JSON格式的。我的代码适用于其他类似的原因,但不适用于这个原因。我需要从相关商品中扣除价格。数据的结构如下所示:Node.js 从JSON中提取值,node.js,json,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":
{
"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);
});
你知道为什么我的价格总是输出为未定义的吗?你应该尝试使用
var price=object[name]
因为您想使用名称
作为变量<代码>对象。名称不会这样做
您始终可以使用console.log(对象)进行故障排除代码>让自己相信你得到了正确的东西
<>最好的结果,考虑以这种方式进行错误检查。(永远不要相信网站,嗯?)
您应该尝试使用var price=object[name]
因为您想使用名称
作为变量<代码>对象。名称
不会这样做
您始终可以使用console.log(对象)进行故障排除代码>让自己相信你得到了正确的东西
<>最好的结果,考虑以这种方式进行错误检查。(永远不要相信网站,嗯?)
使用object.name
将假定您有一个属性为name
的对象,例如:{“name”:“something”}
那么如何提取特定项的值?您可以使用var keys=object.keys(object)获取属性键代码>这将返回一个数组<代码>[“格洛克-18 |黄鼠狼(战痕)”,“PP Bizon |光区(最小磨损)”,…]
现在您可以使用键提取值。例如:console.log(键[0],对象[keys[0])代码>我会将其转换为对象数组<代码>var arr=Object.keys(Object.map)(o=>({name:o,price:Object[o]}))代码>这样您就可以使用您的方法<代码>可变项目=arr[0];console.log(item.name,item.price)
可以工作,但不幸的是,我需要一个能够根据名称而不是数组索引查找值的解决方案。使用object.name
将假定您有一个属性为name
的对象,例如:{“name”:“something”}
如何提取特定项目的值?您可以使用var keys=Object.keys(Object)获取属性键代码>这将返回一个数组<代码>[“格洛克-18 |黄鼠狼(战痕)”,“PP Bizon |光区(最小磨损)”,…]
现在您可以使用键提取值。例如:console.log(键[0],对象[keys[0])代码>我会将其转换为对象数组<代码>var arr=Object.keys(Object.map)(o=>({name:o,price:Object[o]}))代码>这样您就可以使用您的方法<代码>可变项目=arr[0];console.log(item.name,item.price)代码>可以,但不幸的是,我需要一个能够根据名称而不是数组的索引找到值的解决方案。是的,这正是我需要的。谢谢是的,这正是我需要的。谢谢
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);