我有一个包含JSON任务数组的文件:
当前文件包含:
[
{"task":"hey", "checked":"0", "data1":"", "data2":"", "data3":""},
{"task":"there", "checked":"0", "data1":"jiojoi", "data2":"", "data3":""}
]
我想隔离一个签署任务,因此我使用以下代码:
var taskExp = new RegExp('{"task":"' + taskName + '",.*"}', '');
// Get the task
var task = taskExp.exec(text);
在这种情况下,如果
taskName = "hey"
,它将返回整个字符串。 (2个任务)。如果
taskName = "there"
没关系。为什么?提前致谢。
最佳答案
使用正则表达式过滤掉JSON字符串的属性是一个坏主意。
将其解析为一个对象(/ array),然后使用filter
。
假设text
是您的JSON字符串:
var dataArray = JSON.parse(text),
taskName = "someTaskName";
var result = dataArray.filter(function(item){
return item.task === taskName;
});
然后,
result
是所有匹配任务的数组。