Java将JSON的一部分反序列化为对象,其余部分反序列化为JsonObject

Java将JSON的一部分反序列化为对象,其余部分反序列化为JsonObject,java,json,spring-mvc,gson,Java,Json,Spring Mvc,Gson,我到处都在寻找如何将JSON的一部分反序列化为对象,其余部分反序列化为JsonObject 例如: { "id" : "123", "message" : {"subject" : "test sub" , "body" : "test body"} } 我想将这个JSON反序列化到这个类中: public class className { private String id; private transient JsonObject message; //

我到处都在寻找如何将JSON的一部分反序列化为对象,其余部分反序列化为JsonObject

例如:

{
  "id" : "123",
  "message" : {"subject" : "test sub" , "body" : "test body"}
}
我想将这个JSON反序列化到这个类中:

public class className {
    private String id;
    private transient JsonObject message;

    // getters and setters
}
问题是,在反序列化之后,我在“message”中得到空对象
{}

有人知道吗

======================================================

编辑:

还有一点信息,我正在使用SpringMVC,JSON通过POST消息发送到我的控制器中

控制器功能如下所示:

public @ResponseBody String publish(@RequestBody final className input, final HttpServletRequest request,
        final HttpServletResponse response) {
    //input.message = {}
}

这是因为Spring试图用Jackson库解析您的对象,而您的对象持有Gson对象(不能用Jackson解析)

请参阅

@配置
@EnableWebMvc
公共类应用程序扩展WebMVCConfigureAdapter{
@凌驾
public void configureMessageConverters(列表>转换器){
GsonHttpMessageConverter GsonHttpMessageConverter=新的GsonHttpMessageConverter();
添加(gsonHttpMessageConverter);
}
}

对我来说很好。请发一封邮件。这对我来说很好。您确定使用的是Gson中正确的
JsonObject
类型吗?请提供一个。我正在使用
com.google.gson.JsonObject
。我使用POST请求将输入输入输入到REST控制器中,并在主体中使用JSON。控制器如下所示:
公共字符串sendMessage(@RequestBody final className input,…)我在函数入口后立即使用断点停止,并检查我的输入,ID在那里,但消息是emptySo Spring MVC,可能涉及Jackson。请在你的问题中提供这些细节。杰克逊在课堂上吗?谢谢,我已经编辑了我的问题。谢谢你的回答。我使用的是Spring Boot,所以我在appConfig中添加了:
@Bean public HttpMessageConverters customConverters()
,在我的应用程序中添加了
@EnableAutoConfiguration(exclude={JacksonAutoConfiguration.class})
,但现在“message”为空。甚至不是“{}”。你还有别的想法吗?好的!我得到了它。空值的问题是因为消息字段中有transient关键字。我已经删除了瞬态,现在它的工作!非常感谢你!
@Configuration
@EnableWebMvc
public class Application extends WebMvcConfigurerAdapter {

    @Override
    public void configureMessageConverters(List<HttpMessageConverter < ? >> converters) {
        GsonHttpMessageConverter gsonHttpMessageConverter = new GsonHttpMessageConverter();
        converters.add(gsonHttpMessageConverter);
    }
}