gpt4 book ai didi

Java : Map and set to Uppercase

转载 作者:行者123 更新时间:2023-12-02 01:38:48 26 4
gpt4 key购买 nike

在我的spring boot应用程序下,我有这个restfull服务方法:

@RequestMapping(value = "objects/{objectId}", method = RequestMethod.GET)
public HttpEntity<ObjectDTO > getStoreById(@PathVariable("objectId") String storeId) throws DomainResourceNotFoundException {
Object obj= ObjService.getObjById(objectId).orElseThrow(
() -> new DomainResourceNotFoundException(Store.class.getSimpleName(), objectId));
ObjectDTO objDTO = CustomMapperFactory.getMapper().map(obj, ObjectDTO .class);
return new ResponseEntity<>(objDTO , HttpStatus.OK);
}

我的问题是映射时,生成的对象 **objDTO ** 采用以下格式:

"attributeone": "aaa"
"attributetWO": "bbb"

我的目的是转换为大写,同时映射“属性名称,以产生以下格式:

"ATTRIBUTEONE": "aaa"
"ATTRIBUTEOTWO": "bbb"

建议?

最佳答案

JSON 键反射(reflect) StoreDTO 中的属性名称。根据用于序列化的库,您可以使用 @JSONProperty 覆盖属性名称(对于 Jackson,com.fasterxml.jackson.annotation.JsonProperty,这是最常用的)使用):

@JSONProperty("ATTRIBUTEONE")
private String attributeone;

如果你想对所有属性执行此操作,可以使用:

objectMapper.setPropertyNamingStrategy(
new PropertyNamingStrategy.UpperCamelCaseStrategy()
)

但结果将是 ATTRIBUTE_ONE,而不是 ATTRIBUTEONE。如果您确实需要ATTRIBUTEONE,您可以实现自己的策略。

关于Java : Map and set to Uppercase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54771748/

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