gpt4 book ai didi

java - 在 Java 中使 JSON 变得漂亮的最佳方法

转载 作者:行者123 更新时间:2023-12-01 07:44:56 28 4
gpt4 key购买 nike

我有返回的对象列表,如下格式(不漂亮)。

{"data":[{"id":1,"firstName":"Bill","lastName":"Johnson"}]

我希望它像这样显示(漂亮)。

{
"data":[{
"id":1,"
firstName":"Bill",
"lastName":"Johnson"
}]
}

这是我的方法签名,以及我对服务的调用以查询数据库以及将 json 打印到屏幕的返回。

public @ResponseBody ResponseEntity<ResponseData<List<NameSearchDTO>>> getInfo(@PathVariable String code, @PathVariable String idType)

ResponseData<List<NameSearchDTO>> response = new ResponseData<>();

List<NameSearchDTO> results = officeService.getByCode(code, idType);
if (!results.isEmpty()) {
response.setData(results);
response.setStatus(Enum.SUCCESS.getDescription());
response.setMessage(Enum.STATUS_SUCCESS.getDescription());
return new ResponseEntity<>(response, HttpStatus.OK);
}

ResponseData 类实现了可序列化。因为我没有使用 Jackson 或任何其他 JSON 库,这是否使其成为“真正的”JSON?

如何将响应传递给下面的 ObjectMapper 以使其美观?

ObjectMapper jacksonMapper = new ObjectMapper();
jacksonMapper.configure(SerializationFeature.INDENT_OUTPUT, true);

或者我需要创建某种 JSONHelper 类吗?

响应数据类

public class ResponseData <E> implements Serializable{


private E data;
private String status;
private String message;
private boolean hasValidationError = false;

public E getData() {
return data;
}

public void setData(E data) {
this.data = data;
}

public String getStatus() {
return status;
}

public void setStatus(String status) {
this.status = status;
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

public boolean getHasValidationError(){
return hasValidationError;
}

public void setHasValidationError(boolean hasValidationError){
this.hasValidationError = hasValidationError;
}
}

最佳答案

我认为美化json字符串的最好方法是使用Jackson:

import com.fasterxml.jackson.databind.ObjectMapper;
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(yourObject)

关于java - 在 Java 中使 JSON 变得漂亮的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55129866/

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