我正在NodeJS中从MongoDB检索数据,并尝试将元素放入javascript数组。
数据似乎没有解析为jsonParsed。
我想念什么?
var jsonData = '{"GTO": 2000.0, "GAME": 100.0, "SBD": 0.0, "RVR": 1000.0,
"BTC": 0.01153921, "JNT": 5000.0, "ETH": 10.20597219, "MUSIC": 100000.0,
"ENJ": 200.0}';
var jsonParsed = JSON.parse(jsonData);
console.log(jsonParsed)
var i;
for (i=0;i < jsonParsed.length; i++){
console.log(jsonParsed[i]);
}
答案 0 :(得分:0)
您想做类似的事情吗?
var jsonString = `{
"op": "create",
"collection": "test",
"args": [
{ "a": 1 },
{ "b": 2 },
{ "c": 3 }
]
}`
var output = [];
var config= JSON.parse(jsonString);
console.log ("op is"+ config.op);
console.log("keys:")
for(var x of config.args){
for(var key in x){
console.log(x[key]);
output.push(x[key]);
}
}
console.log("Final Array:")
console.log(output);
答案 1 :(得分:0)
我将假设MongoDB实际上返回了一个对象(否则,您确实应该检查模型的配置是否正确),并且引号只是拼写错误。
如果您的目标是创建对象数组。.[{...}, {...}]
您可以执行以下操作:
var jsonData = {"GTO": 2000.0, "GAME": 100.0, "SBD": 0.0, "RVR": 1000.0, "BTC": 0.01153921, "JNT": 5000.0, "ETH": 10.20597219, "MUSIC": 100000.0, "ENJ": 200.0}
const newArr = Object.entries(jsonData).map(([key, price]) => {
return {[key] : price}
})
console.log(newArr)
对于较旧版本的Node,您几乎可能需要 polyfill 。如果收到错误消息Object.entries
不是函数,请在执行逻辑之前运行此命令:
if (!Object.entries) {
Object.entries = function( obj ){
var ownProps = Object.keys( obj ),
i = ownProps.length,
resArray = new Array(i); // preallocate the Array
while (i--)
resArray[i] = [ownProps[i], obj[ownProps[i]]];
return resArray;
};
}
答案 2 :(得分:0)
这是您解决问题的方法
var jsonData = '{"GTO": 2000.0, "GAME": 100.0, "SBD": 0.0, "RVR": 1000.0,
"BTC": 0.01153921, "JNT": 5000.0, "ETH": 10.20597219, "MUSIC": 100000.0,
"ENJ": 200.0}'
var jsonParsed = JSON.parse(jsonData);
var keys = Object.keys(jsonParsed)
for(var i=0;i<keys.length;i++){
console.log(jsonParsed[keys[i]])
}
答案 3 :(得分:0)
如果不能用新行将字符串断开(按Enter键),则需要用+
连接字符串。或者您可以在ES6中使用``将字符串分成多行
var jsonData = '{"GTO": 2000.0, "GAME": 100.0, "SBD": 0.0, "RVR": 1000.0, '+
'"BTC": 0.01153921, "JNT": 5000.0, "ETH": 10.20597219, "MUSIC": 100000.0, '+
'"ENJ": 200.0}';
var jsonParsed = JSON.parse(jsonData);
console.log(jsonParsed)
var i;
for (i=0;i < jsonParsed.length; i++){
console.log(jsonParsed[i]);
}