【问题标题】:Update JSON values with lambda使用 lambda 更新 JSON 值
【发布时间】:2016-12-04 09:26:16
【问题描述】:

我想获取一个 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));

提前致谢!

【问题讨论】:

标签: java json lambda


【解决方案1】:

使用.fields() 迭代键/值对:

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

【讨论】:

  • 是的,好多了
【解决方案2】:

其实你可以这样做:

resourceNode.fieldNames().forEachRemaining(
      s -> resourceNode.set(s, new TextNode(func(resourceNode.get(s).asText())))
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-01
    • 2021-01-24
    • 2020-09-08
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多