我有一个如下所示的结构存储在使用 Immutable.fromJS 方法构建的不可变列表中
private static ObjectMapper mapper = new ObjectMapper();
public static void main(String[] args) throws IOException {
System.out.println(filterJsonArray(JSON, "loginName", "test0001@test.com", "status", "167"));
}
public static String filterJsonArray(String array, String keyOne, Object valueOne, String keyTwo, Object valueTwo) throws IOException {
Map[] nodes = mapper.readValue(array, HashMap[].class);
for (Map node : nodes) {
if (node.containsKey(keyOne) && node.containsKey(keyTwo)) {
if (node.get(keyOne).equals(valueOne) && node.get(keyTwo).equals(valueTwo)) {
return mapper.writeValueAsString(node);
}
}
}
return null;
}
要求是通过 key 属性删除给定节点。 Key属性在结构中是唯一的。我编写了以下代码来实现功能,但是我不确定解决方案是否正确或者可以接受为ImmutableJS的方式。请求ImmutableJS社区的专家意见。
[{
key:"1",
children:[
{key:"1.1"},
{key:"1.2"},
{key:"1.3",
children:[
{key:"1.3.1"}
]
}]
}]
JSBin用于上面给出的代码 https://jsbin.com/bihowu/edit?js,console