【发布时间】:2017-07-01 04:51:18
【问题描述】:
我是 Angualar js 和 json 以及前端开发的新手。所以请原谅我的无知。我想根据属性过滤 json 对象:值。 它不包含数组。并且属性:值始终处于第二级。它是分层 json 而不是数组(父->子->再次子。)。 我见过同一个问题的变体,但其中大多数都在处理数组。 下面是我的示例 json。
{
"key1":
{
"prop11": "value11",
"prop2" : "N",
"prop13" : "value13"
},
"key2":
{
"prop21": "value21",
"prop2" : "Y",
"prop33" : "value23"
},
"key3":
{
"prop31": "value11",
"prop33" : "value13",
"prop2" : "N",
},
"key4":
{
"prop41": "value21",
"prop2" : "Y",
"prop43" : "value23"
},
.
.
.
.
}
我想根据 prop2 的值将所有子元素过滤成一个 json 对象。 也就是说,如果 prop2 : 'Y',那么我想将它添加到我的最终对象中。
这是否可以使用 Angular js 过滤器。 我尝试了以下示例,但无法获得所需的结果。
$filter('filter')(JSON.parse(jsonString),JSON.parse("{ \"Mandatory\":\"Y\"}"))
or
$filter('filter')(JSON.parse(jsonString),JSON.parse("{$:{Mandatory:'y'}}"))
或者我尝试通过添加方括号将示例 json 字符串转换为具有单个对象的数组。
var array = '[ '+ jsonString + ' ]';
$filter('filter')(array,{$:{Mandatory:'y'}});
这些都不起作用。我正在使用控制器 js 文件中的过滤器。 任何帮助表示赞赏。
【问题讨论】:
标签: javascript angularjs json