我正在使用JSON文件为请求主体指定模板,以向后端进行HTTP请求。我正在通过自定义占位符语法将参数值插入请求主体:
{
"requestBody": {
"desc": "{descriptionParameter}"
}
}
占位符逻辑在JSON字符串中查找{placeholder}
模式,并将其替换为各自的参数值。
现在,我还希望能够使用文字大括号指定请求正文,因此我的想法是如果在JSON中引用大括号,则不做任何替换:
{
"requestBody": {
"desc": "\u007BnonReplacedLiteral\u007D"
}
}
但是我找不到找到未解码JSON字符串的方法。杰克逊有可能吗?
这是我当前正在使用的代码:我使用Jackson ObjectMapper
将JSON解析为以下对象:
public class RequestTemplate {
ObjectNode requestBody;
// ... getters
}
requestBody
对象没有固定的结构,因此我只能将其映射到ObjectNode
,然后需要从那时开始使用树API:
Iterator<Entry<String, JsonNode>> propertyIterator = requestBody.fields();
while (propertyIterator.hasNext()) {
Entry<String, JsonNode> property = propertyIterator.next();
String string = property.getValue().textValue();
// string is now the decoded value - how would I get the non-decoded value?
// ... parameter replacement logic
}