Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用lambda更新JSON值_Java_Json_Lambda - Fatal编程技术网

Java 使用lambda更新JSON值

Java 使用lambda更新JSON值,java,json,lambda,Java,Json,Lambda,我想获取一个JsonNode树并更新每个值。这可以通过lambda表达式实现吗 { "resource": { "key1": "value1", "key2": "value2", "key3": "value3" } } 我尝试使用以下逻辑: JsonNode json = new ObjectMapper().readTree(new ObjectMapper().writeValueAsString(myObject));

我想获取一个JsonNode树并更新每个值。这可以通过lambda表达式实现吗

{
    "resource": {
        "key1": "value1",
        "key2": "value2",
        "key3": "value3"
    }
}
我尝试使用以下逻辑:

JsonNode json = new ObjectMapper().readTree(new ObjectMapper().writeValueAsString(myObject));

ObjectNode rootNode = (ObjectNode) json;
ObjectNode resourceNode = (ObjectNode) rootNode.path("resource");

//Psuedo Code here
resourceNode.forEach(node -> node.value = myFunc(node.value));

提前谢谢

实际上你可以做到:

resourceNode.fieldNames().forEachRemaining(
      s -> resourceNode.set(s, new TextNode(func(resourceNode.get(s).asText())))
);
用于迭代键/值对:

resourceNode.fields().forEachRemaining(
    entry -> resourceNode.set(
        entry.getKey(),
        func(entry.getValue())
    )
);

我不认为你能,看@RC它是可能的,那好多了