- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 Jackson,我如何安全地将 JsonNode 转换为 JSON 字符串。
public class WrappedMessage extends JsonDeserializer<WrappedMessage> {
@Override
public WrappedMessage deserialize(JsonParser jp, DeserializationContext ctxt)
throws IOException {
ObjectCodec codec = jp.getCodec();
JsonNode node = codec.readTree(jp);
JsonNode payload = node.get("payload");
// How to get the payload as JSON
return new WrappedMessage();
}
}
可以使用ObjectMapper#writeValueAsString
来做到这一点,并且我知道在正常上下文中ObjectCode
可以转换为ObjectMapper
,但不会看起来不太干净。
也可以执行payload.toString()
,但文档指出:
Method that will produce developer-readable representation of the node; which may or may not be as valid JSON. If you want valid JSON output (or output formatted using one of other Jackson supported data formats) make sure to use {@link ObjectMapper} or {@link ObjectWriter} to serialize an instance, for example: String json = objectMapper.writeValueAsString(rootNode);
所以使用起来也不安全。
我看到的最后一种可能性是构造一个新的ObjectMapper
,但对我来说似乎不是很有效。
最佳答案
一种可能是创建一个 JsonGenerator
并使用 ObjectCodec.writeTree
:
StringWriter writer = new StringWriter();
JsonGenerator jgen = codec.getFactory().createGenerator(writer);
codec.writeTree(jgen, payload);
String jsonPayload = writer.toString();
关于java - Jackson ObjectCodec 转字符串 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47653363/
使用 Jackson,我如何安全地将 JsonNode 转换为 JSON 字符串。 public class WrappedMessage extends JsonDeserializer {
注意:这是使用 jackson 2.3.2 为了我的一个项目的需要,我正在编写一个自定义 JsonParser其中记录了 Map其中键是 JsonPointer s 和值是 Integer s(指针指
此问题是 this one 的后续问题.我似乎无法通过以下代码访问 jackson 库: import com.fasterxml.jackson.databind.DeserializationFe
我是一名优秀的程序员,十分优秀!