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

标签 java json jackson spring-data-jpa gson

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

{"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/

相关文章:

java - 想要在 Qt 和 Java 之间进行选择 : a newb question

没有年份的 JavaFX DatePicker : can it be Day and Month only,?

java - Jackson:反序列化枚举

java - 如何在不手动转换为 JSON 的情况下使用 Jersey Client 发布 Pojo?

java - 使用 URL java 连接到 localhost 时出错

java - 在 java 中创建一个客户端-服务器应用程序,其中两台机器都可以有动态 IP 地址

ios - 解析 JSON 数组时无法从 'AnyObject' 向下转型

json - 终端外壳程序路径 "..\..\..\vsCode\git\bin\bash.exe"在VS Code Windows中不存在

javascript - 是否可以用JQuery .ajax()实现 'PUT'数据跨域

java - Spring Boot @ResponseBody Jackson - 转义所有字符串字段