Ben*_*Ben 9 javascript json asynchronous object node.js
我是Node的新手并且正在努力访问一个简单的JSON对象.我的request.body将具有类似于以下内容的JSON内容:
{
"store_config": [
{
"name": "hello",
"name2": "world"
}
]
}
Run Code Online (Sandbox Code Playgroud)
"store_config"值将始终存在,但其中的键和值可以是任何值.
如何迭代键和值来访问每个键?我还想以异步方式处理每个.
欣赏任何想法或方向.
UPDATE
console.log(typeof(request.body));
Run Code Online (Sandbox Code Playgroud)
返回: Object
parsedBody = JSON.parse(request.body);
Run Code Online (Sandbox Code Playgroud)
收益:
SyntaxError: Unexpected token o
at Object.parse (native)
Run Code Online (Sandbox Code Playgroud)
更新2 - 进一步调试:
当我尝试遍历数组时,只有一个值:
request.body.store_config.forEach(function(item, index) {
console.log(index);
console.log(request.body.store_config[index]);
});
Run Code Online (Sandbox Code Playgroud)
收益:
0
{ name: 'hello', name2: 'world' }
Run Code Online (Sandbox Code Playgroud)
Mic*_*ley 16
如果request.body已经被解析为JSON,那么您只需将数据作为JavaScript对象访问; 例如,
request.body.store_config
Run Code Online (Sandbox Code Playgroud)
否则,您需要解析它JSON.parse:
parsedBody = JSON.parse(request.body);
Run Code Online (Sandbox Code Playgroud)
既然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`
});
Run Code Online (Sandbox Code Playgroud)
如果你需要对数组中的每个项进行异步处理,并且需要知道它何时完成,我建议你看看像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
});
Run Code Online (Sandbox Code Playgroud)
我在这个截屏视频中讨论了与async库的异步处理.
| 归档时间: |
|
| 查看次数: |
56931 次 |
| 最近记录: |