package com.ibeetl.admin.core.conf; import java.io.IOException; import java.text.SimpleDateFormat; import org.beetl.sql.core.engine.PageQuery; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.Version; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.module.SimpleModule; import com.ibeetl.admin.core.web.JsonResult; @Configuration public class JasonConfig { @Bean @ConditionalOnMissingBean(ObjectMapper.class) public ObjectMapper getObjectMapper() { ObjectMapper objectMapper = new ObjectMapper(); objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true); SimpleModule simpleModule = new SimpleModule("SimpleModule", Version.unknownVersion()); simpleModule.addSerializer(JsonResult.class, new CustomJsonResultSerializer()); objectMapper.registerModule(simpleModule); return objectMapper; } /** * layui 前端要求后台返回的数据格式 * @author xiandafu * */ public static class CustomJsonResultSerializer extends JsonSerializer { public CustomJsonResultSerializer() { } @Override public void serialize(JsonResult value, JsonGenerator gen, SerializerProvider serializers) throws IOException { gen.writeStartObject(); if(value.getCode().equals("200")) { gen.writeObjectField("code", 0); }else { gen.writeObjectField("code", Integer.parseInt(value.getCode())); } gen.writeStringField("msg", value.getMsg()); Object data = value.getData(); if(data instanceof PageQuery ) { PageQuery query = (PageQuery)(data); gen.writeObjectField("count", query.getTotalRow()); gen.writeObjectField("data", query.getList()); }else { gen.writeObjectField("data", data); } gen.writeEndObject(); } } }