CommonResponseFormate.java 1.35 KB
package com.idss.vulsync.config;

import cloud.agileframework.mvc.base.AbstractResponseFormat;
import cloud.agileframework.mvc.base.Head;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.type.TypeFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * @Author: zc
 * @Date: 2024/8/20 16:41
 */
@Component
public class CommonResponseFormate extends AbstractResponseFormat {
    @Autowired
    ObjectMapper objectMapper;

    @Override
    public Map<String, Object> buildResponseData(Head head, Object result) {
        //head为组件整理后的响应头部信息
        //result为响应体信息
        //自行定制返回结果状态为Map格式返回,该Map将作为ModelAndView中的Model组装成视图写入response
        LinkedHashMap<String, Object> map = new LinkedHashMap<>();
        try {
            map = objectMapper.readValue(objectMapper.writeValueAsString(result), TypeFactory.defaultInstance().constructMapType(LinkedHashMap.class, String.class, Object.class));
            return map;
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return map;
    }
}