Java Jackson-使用treeToValue时处理Json节点中的文本?

Java Jackson-使用treeToValue时处理Json节点中的文本?,java,json,jackson,Java,Json,Jackson,我有一些代码,它接受一些输入json,并使用Jackson和“treeToValue”方法将其转换为一个简单的java类(pojo): 我希望能够处理json中所有节点值的文本,以扫描可能的XSS攻击,并根据需要对HTML进行编码 用treeToValue做这件事有什么用吗?还是容易读取值?我只想添加一个排序回调,这样当解析一个节点值时,它允许我根据需要更改节点文本。我查看了源代码,我想我可能必须派生一个定制的TreeTraversingParser来很好地完成这项工作,并重写“getText”

我有一些代码,它接受一些输入json,并使用Jackson和“treeToValue”方法将其转换为一个简单的java类(pojo):

我希望能够处理json中所有节点值的文本,以扫描可能的XSS攻击,并根据需要对HTML进行编码

用treeToValue做这件事有什么用吗?还是容易读取值?我只想添加一个排序回调,这样当解析一个节点值时,它允许我根据需要更改节点文本。我查看了源代码,我想我可能必须派生一个定制的TreeTraversingParser来很好地完成这项工作,并重写“getText”


还有更好的建议吗

事实证明,这可以使用自定义ObjectMapper来完成

public CustomObjectMapper()
{
    super();

    SimpleModule stringModule = new SimpleModule("StringModule", new Version(1, 0, 0, null)).addDeserializer(String.class, new CustomStringDeserializer());
    registerModule(stringModule);
}

private static class CustomStringDeserializer extends JsonDeserializer<String>
{

    @Override
    public String deserialize(JsonParser parser, DeserializationContext context) throws IOException
    {
        if (parser.getCurrentToken() == JsonToken.VALUE_STRING)
        {
           String text = parser.getText();

           // Do whatever you want to the text here

           return text;
        }
    }
}
public CustomObjectMapper()
{
    super();

    SimpleModule stringModule = new SimpleModule("StringModule", new Version(1, 0, 0, null)).addDeserializer(String.class, new CustomStringDeserializer());
    registerModule(stringModule);
}

private static class CustomStringDeserializer extends JsonDeserializer<String>
{

    @Override
    public String deserialize(JsonParser parser, DeserializationContext context) throws IOException
    {
        if (parser.getCurrentToken() == JsonToken.VALUE_STRING)
        {
           String text = parser.getText();

           // Do whatever you want to the text here

           return text;
        }
    }
}
   CustomObjectMapper mapper = new CustomObjectMapper();
   MyBean bean = mapper.treeToValue(node, MyBean.class);