簡體   English   中英

Json 未解析為對象/數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM