【发布时间】:2017-01-25 13:04:17
【问题描述】:
我有以下 JSON 字符串:
{
"Alarm":{
"Hello":48,
"World":3,
"Orange":1
},
"Rapid":{
"Total":746084,
"Fake":20970,
"Cancel":9985,
"Word": 2343
},
"Flow":{
"Support":746084,
"About":0,
"Learn":0
}
}
然后我加载上面的字符串并将其转换为json对象:
jsonStr = '{"Alarm":{"Hello":48,"World":3,"Orange":1},"Rapid":{"Total":746084,"Fake":20970,"Cancel":9985},"Flow":{"Support":746084,"About":0,"Learn":0}}';
var jsonObj = JSON.parse(jsonStr);
现在,如何通过键名过滤这个 json 对象?
例如,如果过滤器是“ange”,则过滤后的对象将是:
{
"Alarm":{
"Orange":1
}
}
如果过滤器是“flo”,过滤后的对象会变成:
{
"Flow":{
"Support":746084,
"About":0,
"Learn":0
}
}
如果过滤器是“wor”,结果将是:
{
"Alarm":{
"World": 3,
},
"Rapid":{
"Word": 2343
}
}
是否可以使用filter方法实现这种过滤?
【问题讨论】:
-
Filtering JSON data的可能重复
-
没有“JSON 对象”这样的东西——JSON总是是一个字符串;仅此而已。
-
@naomik 你的意思是
JSON.parse(jsonStr)返回一个字符串? -
@Meysam,没有。
JSON.stringify(data)返回一个字符串。JSON.parse(json)返回解析后的数据。将 JSON 视为“JSON-formatted 字符串中的 JavaScript 数据”。当您说“JSON 对象”时,您很可能是指“JavaScript 对象” -
@naomik From documentation:用 JSON.parse() 解析数据,数据变成 JavaScript 对象。
标签: javascript jquery json filter