gpt4 book ai didi

java - 替换的 freemarker 模板字段中不需要的引号

转载 作者:行者123 更新时间:2023-11-30 07:07:08 24 4
gpt4 key购买 nike

我正在从 Freemarker 模板生成内容,但我在替换字段中得到了引用值。

对于 JSON 对象

{
"name" : "Pepster"
}

在模板中:

Hi ${name}!

我明白了

Hi "Pepster"!

我愿意

Hi Pepster!

我用它提供的对象是通过使用 Jackson 注释映射我的对象获得的 JsonNode 树:

class Name {
@JsonProperty("name")
public String mName;
}

处理器:

final ObjectMapper mapper = new ObjectMapper();
JsonNode jsonDocument = mapper.valueToTree(nameObject);
//...
template.process(jsonDocument, writer);

我觉得我缺少某种配置?

最佳答案

FreeMarker 不会添加引号,JsonNodetoString() 方法会添加引号,这是肯定的。您需要使用自定义(化)ObjectWrapper,它知道它应该调用 getTextValue()(或类似的东西)来对 String 进行文本处理值(value)。您将遇到与 JSON 编号相同的问题,其中 ObjectWrapper 应调用 getNumberValue()。或者,如果您不想投资于自定义 ObjectWrapper${name.textValue} 肯定可以工作,但如果您有很多模板,这会有点尴尬。

关于java - 替换的 freemarker 模板字段中不需要的引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25156354/

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