Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用response实体-Spring的动态JSON对象_Java_Json_Spring_Spring Mvc_Jackson - Fatal编程技术网

Java 使用response实体-Spring的动态JSON对象

Java 使用response实体-Spring的动态JSON对象,java,json,spring,spring-mvc,jackson,Java,Json,Spring,Spring Mvc,Jackson,我使用Spring的return ResponseEntity返回HTTP响应 在实体中传递POJO或MAP时,它将其转换为JSON对象。像 return new ResponseEntity<Object>(result, HttpStatus.OK); 我无法使用@jsonignore或@explore注释。B'Coz我希望JSON能够使用编码动态完成 可以通过重写GSON转换器方法或使用AOP 有没有办法配置jackson的适配器以根据字段创建对象。如果您可以切换到jac

我使用Spring的return ResponseEntity返回HTTP响应

在实体中传递POJO或MAP时,它将其转换为JSON对象。像

  return new ResponseEntity<Object>(result, HttpStatus.OK);
我无法使用@jsonignore或@explore注释。B'Coz我希望JSON能够使用编码动态完成

可以通过重写GSON转换器方法或使用AOP


有没有办法配置jackson的适配器以根据字段创建对象。

如果您可以切换到jackson,您可能可以使用我编写的这个小扩展来实现此目的:


您的意思是希望发送的响应是一个对象,其中包含您在请求中收到的值是否正确?请求值的数量是固定的还是动态的。请求中需要作为对象发送的所有字段有哪些(POJO已经有了这些字段,但还有很多其他字段。我们需要排除这些字段)。它是动态的。我们不知道会发生什么。你需要使用Gson还是可以换成杰克逊?没问题。也可以使用杰克逊。在杰克逊有什么办法吗。事实上,首先我只用了杰克逊。仅此而已,我转向GSON。POJO类是动态创建的吗?还是只想忽略空值?谢谢martin。根据您在github中的示例,我必须在每个方法中添加objectmapper,这些方法在转换后都可以工作。在转换之前,我在那里告诉jackson,我创建了一个Springbean,用一个helper方法封装了必要的代码<代码>bean.write(obj,“过滤器”,…)。我还没有尝试将其与ResponseBook合并。我的控制器直接返回字符串。
mixin
配置在
对象上运行时只能执行一次。例如,在SpringBean的
@PostConstruct
中。objectmapper呢。我想我会在github自述文件中添加一个例子。给我点时间;)
 <bean id="jsonMessageConverter" class="org.springframework.http.converter.json.GsonHttpMessageConverter ">
</bean>
 {
 "name":"test",
 "id":15
 }