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