簡體   English   中英

Node.js - 解析簡單的JSON對象並訪問鍵和值

[英]Node.js - Parse simple JSON object and access keys and values

我是Node的新手並且正在努力訪問一個簡單的JSON對象。 我的request.body將具有類似於以下內容的JSON內容:

{
    "store_config": [
        {
            "name": "hello",
            "name2": "world"
        }
    ]
}

“store_config”值將始終存在,但其中的鍵和值可以是任何值。

如何迭代鍵和值來訪問每個鍵? 我還想以異步方式處理每個。

欣賞任何想法或方向。


UPDATE

console.log(typeof(request.body));

返回: Object

parsedBody = JSON.parse(request.body);

收益:

SyntaxError: Unexpected token o
    at Object.parse (native)

更新2 - 進一步調試:

當我嘗試遍歷數組時,只有一個值:

request.body.store_config.forEach(function(item, index) {
  console.log(index);
  console.log(request.body.store_config[index]);

});

收益:

0
{ name: 'hello', name2: 'world' }

如果request.body已經被解析為JSON,那么您只需將數據作為JavaScript對象訪問; 例如,

request.body.store_config

否則,您需要使用JSON.parse解析它:

parsedBody = JSON.parse(request.body);

由於store_config是一個數組,您可以迭代它:

request.body.store_config.forEach(function(item, index) {
  // `item` is the next item in the array
  // `index` is the numeric position in the array, e.g. `array[index] == item`
});

如果你需要對數組中的每個項進行異步處理,並且需要知道它什么時候完成,我建議你看看像async這樣的異步助手庫 - 特別是async.forEach對你有用

async.forEach(request.body.store_config, function(item, callback) {
  someAsyncFunction(item, callback);
}, function(err){
  // if any of the async callbacks produced an error, err would equal that error
});

在這個截屏視頻中討論async庫的異步處理。

像這樣的東西:

config = JSON.parse(jsonString);
for(var i = 0; i < config.store_config.length; ++i) {
   for(key in config.store_config[i]) {
      yourAsyncFunction.call(this, key, config.store_config[i][key]);
   }
}

要將此sting轉換為實際對象,請使用JSON.parse 您可以像使用數組一樣迭代Javascript對象。

config = JSON.parse(string).store_config[0]
foreach (var key in config) {
    value = config[key]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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