这是一种更新Json对象数组值的方法吗?
我有一个JSON,如下所示: 我想要的是循环中有一个代码这是一种更新Json对象数组值的方法吗?,json,node.js,Json,Node.js,我有一个JSON,如下所示: 我想要的是循环中有一个代码 for(变量i=0;i使用下面的代码 var array = [ { message: '', fileSize: '14534541', id: '7128', readBy: '2016-04-13 03:58:18', userID: '337', dateTime: '2016-04-12 06:07:12', fileName: 'ecdba036-9b0b-4c40-b64d-c82ce8765f14.mp4', fileTi
for(变量i=0;i使用下面的代码
var array = [
{ message: '',
fileSize: '14534541',
id: '7128',
readBy: '2016-04-13 03:58:18',
userID: '337',
dateTime: '2016-04-12 06:07:12',
fileName: 'ecdba036-9b0b-4c40-b64d-c82ce8765f14.mp4',
fileTicketID: 'ecdba036-9b0b-4c40-b64d-c82ce8765f14' }, ... ];
async.eachSeries(array, function iteratee(item, callback) {
db.query("SELECT * FROM ... WHERE ID=?", item.id, function(err, result) {
if (result[0].fileSize == 0) {
item.fileSize = 0;
}
callback();
}
}, function done() {
console.log(array);
};
$jsonS=“[{”message:“,”fileSize:”14534541,“id:”7128,“readBy:”2016-04-13 03:58:18“,”userID:”337,“dateTime:”2016-04-12 06:07:12“,”fileName:”ecdba036-9b0b-4c40-b64d-c82ce8765f14.mp4“,”fileTicketID:”ecdba036-9b0b-4c40-b64d-c82ce8765f14“,”消息“,”fileSize:”0,“id:”7128,“readBy:”“2016-04-13 03:58:18”,“userID”:337,“dateTime”:“2016-04-12 06:07:12”,“fileName”:“ecdba036-9b0b-4c40-b64d-c82ce8765f14.mp4”,“fileTicketID”:“ecdba036-9b0b-4c40-b64d-c82ce8765f14”;
$jsonArray=json_decode($jsonS);
foreach($jsonArray作为$k=>$json)
{
if(根据该文件名检查数据库中文件的值,如果该值为零)
{
$jsonArray[$k]->fileSize=0;
}
}
打印(jsonArray);
如果我理解正确,您可以使用async
库执行以下操作:
指定在json中要检查的条件“我要检查数据库中文件的值"??无论条件如何,如果条件为真,则将jon变量fileze更新为0基本上,我要检查数据库中存在的文件名大小是否为0,如果大小为0,则更新它filezie 0这是一个误解,基本上我要传达的是,如果filezie是0,它来自数据库,而不是json,那么我有更新现有json变量filesize=0。我希望您理解此引用错误:在WriteStream中未定义异步。(/var/www/html/nodeproject/helloworld/controllers/messages.js:100:1)在emitNone(events.js:85:20)在WriteStream.emit(events.js:179:7)在fs.js:1851:14在FSReqWrap.oncomplete(fs.js:82:15)中您需要从npm下载它:npm install async
for(var i=0;i<n.length;i++)
{
if(condition)
{
then update the value of fileSize to 0
then josn array variable shown like
{ message: '',
fileSize: 0,
id: '7128',
readBy: '2016-04-13 03:58:18',
userID: '337',
dateTime: '2016-04-12 06:07:12',
fileName: 'ecdba036-9b0b-4c40-b64d-c82ce8765f14.mp4',
fileTicketID: 'ecdba036-9b0b-4c40-b64d-c82ce8765f14' },
}
}
}
Use below code
<pre>
$jsonS = '[ { "message": "", "fileSize": 14534541, "id": 7128, "readBy": "2016-04-13 03:58:18", "userID": 337, "dateTime": "2016-04-12 06:07:12", "fileName": "ecdba036-9b0b-4c40-b64d-c82ce8765f14.mp4", "fileTicketID": "ecdba036-9b0b-4c40-b64d-c82ce8765f14" },{ "message": "", "fileSize": 0, "id": 7128, "readBy": "2016-04-13 03:58:18", "userID": 337, "dateTime": "2016-04-12 06:07:12", "fileName": "ecdba036-9b0b-4c40-b64d-c82ce8765f14.mp4", "fileTicketID": "ecdba036-9b0b-4c40-b64d-c82ce8765f14" } ]';
$jsonArray = json_decode($jsonS);
foreach($jsonArray as $k=>$json)
{
if(check the value of file in database if that is zero according to that filename)
{
$jsonArray[$k]->fileSize=0;
}
}
print_r($jsonArray);
</pre>
var array = [
{ message: '',
fileSize: '14534541',
id: '7128',
readBy: '2016-04-13 03:58:18',
userID: '337',
dateTime: '2016-04-12 06:07:12',
fileName: 'ecdba036-9b0b-4c40-b64d-c82ce8765f14.mp4',
fileTicketID: 'ecdba036-9b0b-4c40-b64d-c82ce8765f14' }, ... ];
async.eachSeries(array, function iteratee(item, callback) {
db.query("SELECT * FROM ... WHERE ID=?", item.id, function(err, result) {
if (result[0].fileSize == 0) {
item.fileSize = 0;
}
callback();
}
}, function done() {
console.log(array);
};