当我从@RestControler返回对象时,如何在json中保持地图键顺序 [英] How to keep map key order in json when I return object from @RestControler
本文介绍了当我从@RestControler返回对象时,如何在json中保持地图键顺序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想保持地图条目的顺序,因此我在上下文中添加了以下bean:
I want to keep map entries order thus I've added following bean into context:
@Bean
public ObjectMapper objectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true);
return objectMapper;
}
我还有以下控制器:
@Autowired
private ObjectMapper objectMapper;
@GetMapping(value = "/mapping", produces = "application/json")
public ResponseEntity<MappingDTO> getMapping(HttpServletRequest request) {
MappingDTO mappingDTO = mappingService.getMapping();
String str = objectMapper.writeValueAsString(mappingDTO); // added this line for test perpose
return ResponseEntity.ok(mappingDTO);
}
dto:
public class MappingDTO {
private String id;
private Map<String, List<MappingEntry>> entries;
...
str
变量包含正确顺序的正确json,但是当我执行Get请求时-顺序被破坏了.
str
variable contains correct json with correct order but when I execute Get request - order is broken.
如何解决此问题?
推荐答案
假设您希望按字典顺序对键进行排序,请添加
Assuming you want keys sorted lexicographically, add
spring.jackson.serialization.order-map-entries-by-keys=true
到application.properties
文件.
这篇关于当我从@RestControler返回对象时,如何在json中保持地图键顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文