我有返回的对象列表,如下格式(不漂亮)。
{"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/