Javascript jQuery-在HTML PRE中过滤JSON数组

Javascript jQuery-在HTML PRE中过滤JSON数组,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我正在尝试对HTML预块中显示的一些JSON进行实时筛选,我希望能够查询任何内容并显示特定的JSON dict。我不知道是否有一个模块已经有了这个或它将被称为什么 到目前为止,我有如下内容,当我在搜索框中键入时,只会删除所有数据,当我删除搜索框中的文本时,所有数据也会丢失,直到页面刷新为止 理想情况下,我想键入以下任何一项进行筛选: STR-LAB-RTR-01 config_applied=SUCCCESS (or equal syntax to show all successes) con

我正在尝试对HTML预块中显示的一些JSON进行实时筛选,我希望能够查询任何内容并显示特定的JSON dict。我不知道是否有一个模块已经有了这个或它将被称为什么

到目前为止,我有如下内容,当我在搜索框中键入时,只会删除所有数据,当我删除搜索框中的文本时,所有数据也会丢失,直到页面刷新为止

理想情况下,我想键入以下任何一项进行筛选:

STR-LAB-RTR-01
config_applied=SUCCCESS (or equal syntax to show all successes)
config_applied=FAILUER (or equal syntax to show all failures)
error: not none (or equal syntax to show all errors)
我希望这个东西已经存在,但我不知道它的名字

谢谢

var json_data=[{'hostname':'STR-LAB-RTR-01','config_applied':'SUCCESS','error':'None'},{'hostname':'STR-LAB-RTR-02','config_applied':'FAILED','error':'None'}]
函数find_in_object(我的_object,我的_条件){
返回my_object.filter(函数(obj)){
返回Object.keys(my_条件).every(函数c){
返回obj[c]==my_条件[c];
});
});
}
函数显示(数据){
试一试{
data=JSON.stringify(数据,未定义,2)
}
抓住{
console.log('无法格式化JSON数据')
}
返回数据
}
$(“#脚本_结果”).html(显示_json(json_数据));
$(“#txt search”)。在(“keyup”,function()上{
var value=$(this.val().toLowerCase();
var filtered_json=find_in_对象(json.parse(json_数据),value);
$(“#脚本_结果”).html(display_json(filtered_json));
});

前{
显示:块;
填充:9.5px;
利润率:0.10px;
字体大小:13px;
线高:1.42857143;
颜色:#333;
单词break:打破一切;
单词包装:打断单词;
背景色:#F5;
边框:1px实心#ccc;
边界半径:4px;
空白:预包装;
}

根据我的理解,我创建了下面的答案,并准备了忽略大小写的正则表达式,如果您想区分大小写,可以从正则表达式
新RegExp(my_标准,'ig')
中删除
I

var json_data=[{'hostname':'STR-LAB-RTR-01','config_applied':'SUCCESS','error':'None'},{'hostname':'STR-LAB-RTR-02','config_applied':'FAILED','error':'None'};
var stringData=JSON.stringify(JSON_数据);
函数find_in_object(我的_object,我的_条件){
var_值=新的RegExp(我的_标准,'ig');
返回my_object.filter(函数(obj)){
var_data=JSON.stringify(obj);
返回_值测试(_数据);
});
}
函数显示(数据){
试一试{
data=JSON.stringify(数据,未定义,2)
}
抓住{
console.log('无法格式化JSON数据')
}
返回数据
}
$(“#脚本_结果”).html(显示_json(json_数据));
$(“#txt search”)。在(“keyup”,function()上{
var值=$(this.val();
var filtered_json=find_in_对象(json.parse(stringData),value);
$(“#脚本_结果”).html(display_json(filtered_json));
});
pre{
显示:块;
填充:9.5px;
利润率:0.10px;
字体大小:13px;
线高:1.42857143;
颜色:#333;
单词break:打破一切;
单词包装:打断单词;
背景色:#F5;
边框:1px实心#ccc;
边界半径:4px;
空白:预包装;
}

根据我的理解,我创建了下面的答案,并准备了忽略大小写的正则表达式,如果您想区分大小写,可以从正则表达式
新RegExp(my_标准,'ig')
中删除
I

var json_data=[{'hostname':'STR-LAB-RTR-01','config_applied':'SUCCESS','error':'None'},{'hostname':'STR-LAB-RTR-02','config_applied':'FAILED','error':'None'};
var stringData=JSON.stringify(JSON_数据);
函数find_in_object(我的_object,我的_条件){
var_值=新的RegExp(我的_标准,'ig');
返回my_object.filter(函数(obj)){
var_data=JSON.stringify(obj);
返回_值测试(_数据);
});
}
函数显示(数据){
试一试{
data=JSON.stringify(数据,未定义,2)
}
抓住{
console.log('无法格式化JSON数据')
}
返回数据
}
$(“#脚本_结果”).html(显示_json(json_数据));
$(“#txt search”)。在(“keyup”,function()上{
var值=$(this.val();
var filtered_json=find_in_对象(json.parse(stringData),value);
$(“#脚本_结果”).html(display_json(filtered_json));
});
pre{
显示:块;
填充:9.5px;
利润率:0.10px;
字体大小:13px;
线高:1.42857143;
颜色:#333;
单词break:打破一切;
单词包装:打断单词;
背景色:#F5;
边框:1px实心#ccc;
边界半径:4px;
空白:预包装;
}


为什么要尝试将字符串字符串化?你应该对它进行一次解析,这样你就有了一个javascript对象可以进行过滤等等。注意:你的代码段甚至没有运行,你能把它编辑成一个可运行的代码段吗?嗨,代码段应该一直运行到现在,我没有