gpt4 book ai didi

java - JSON 变量替换占位符

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:38:06 25 4
gpt4 key购买 nike

我正在寻找一个 Java 库,它可以在将 Json 动态编码(marshal)到对象时进行变量替换。

例如,Json 模板将具有变量替换站点/占位符,例如:

{
"User": {
"Name": "${name}",
"Age": ${age}
}
}

这将导致 Java 对象在编码后表示以下内容:

{
"User": {
"Name": "Elvis",
"Age": 80
}
}

我想要的是类似这样的东西:

ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(new File("c:\\user.json.template"), User.class, "Elvis", 80);

最佳答案

这确实超出了 JSON 库的范围,因为 JSON 格式本身不支持或没有变量替换的概念。您最好的选择可能是使用 JSON 库(如 Jackson)来获取树表示(对于 Jackson 来说是 JsonNode),然后遍历它,并使用另一个库来处理文本替换。有很多可以做到这一点,从 stringtemplate 到其他(可能是其他答案引用的 MessageFormat)。

如果您的替换永远不会有趣的“有趣的字符”(引号、换行符),也可以还原另一个;如果是这样,您可以首先使用字符串模板库,然后使用 JSON 解析器提供已处理的文本。但这有点冒险,因为通常最终会出现一种情况,您最终会尝试添加引号,然后解析失败。

关于java - JSON 变量替换占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28093828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com