gpt4 book ai didi

java - Jackson 将 json 字符串双序列化为 Java 对象

转载 作者:搜寻专家 更新时间:2023-11-01 02:59:58 25 4
gpt4 key购买 nike

我有一个 Json 字符串,它有一个字符串消息字段。字符串:

{  "Type" : "Text",
"Subject" : "data received",
"Message" :"{\\"language\\":\\"US\\",\\"data\\":\\"signature\\"}"
}

我想把它转换成下面的结构:通知.java

public class Notification {
String type;
String subject;
Message message;
}

消息.java

public class Message {
String language;
String data;
}

有没有办法可以直接将字符串转换为上述结构的Java对象?我想避免反序列化两次。

最佳答案

您可以创建一个自定义的Deserializer 来将Message 文本反序列化为Message 对象并注解Message 类使用@JsonDeserialize:

@JsonDeserialize(using = MessageDeserializer.class)
public class Message {
String language;
String data;
}

public class MessageDeserializer extends JsonDeserializer<Message> {

public MessageDeserializer() {
super();
}

@Override
public Message deserialize(
final JsonParser jsonParser, final DeserializationContext deserializationContext) throws
IOException, JsonProcessingException {
final String messageText = jsonParser.getText();
// parse messageText into Message object
}
}

关于java - Jackson 将 json 字符串双序列化为 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38035793/

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