package org.xmx0632.deliciousfruit.erp; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import org.xmx0632.deliciousfruit.erp.bo.ErpApiReadResponse; import org.xmx0632.deliciousfruit.erp.bo.ErpApiReadResponseWrapper; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; @Component public class ErpMessageParser { private static Logger log = LoggerFactory.getLogger(ErpMessageParser.class); public String toJson(Object object) { return JSON.toJSONString(object); } <T> T fromJson(String text, TypeReference<T> type) { return JSON.parseObject(text, type); } public <T> T parseResponse_old(String resp) { // 解析json响应消息 ErpApiReadResponse<T> fromJson = fromJson(resp, new TypeReference<ErpApiReadResponse<T>>() { }); log.info("fromJson:{}", fromJson); if (fromJson == null || fromJson.getData() == null) { return null; } return fromJson.getData().get(0); } @SuppressWarnings("unchecked") public <T> T parseResponse(String resp, T t) { // 解析json响应消息 ErpApiReadResponseWrapper<ErpApiReadResponse<T>> fromJson = fromJson( resp, new TypeReference<ErpApiReadResponseWrapper<ErpApiReadResponse<T>>>() { }); log.info("fromJson:{}", fromJson); if (fromJson == null || fromJson.getData() == null || fromJson.getData().getData() == null || fromJson.getData().getData().isEmpty()) { return null; } String result = fromJson.getResult(); if (!"0".equals(result)) { return null; } List<T> respList = fromJson.getData().getData(); T respObject = (T) respList.get(0); log.info("respObject:{}", respObject); return (T) JSON.parseObject(respObject.toString(), t.getClass()); } }