[英]Json not parsed into object/array
我正在 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]); }
如果需要通過+
連接字符串,則不能按換行符(按 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]); }
你想做這樣的事情嗎?
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);
我將假設 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;
};
}
這就是您解決問題的方法
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]])
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.