java实体类和json串字段名称不一致或者与map中字段名称不一致使用注解转化

package yuanCheng;

import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;

import yuanCheng.bean.NeedInfo;
import yuanCheng.constant.SapConstant;

public class Controller {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		init("SP","S");
	}
	public static void init(String company, String cardType) {
		//String url=String.format(SapConstant.PARTNER_INIT +"?Company={0}&CardType={1}",company,cardType);
		String url = MessageFormat.format(SapConstant.PARTNER_INIT,company,cardType);//封装请求路径和请求参数
		System.out.println("url==========="+url);
		String res = HttpUtil.doGet(url,null);//发送远程get请求
		Map<String,Object> result = JSONObject.parseObject(res, Map.class);//将json串转换成map类型
		System.out.println("result====="+result);
		Map<String,Object>data=JSONObject.parseObject(JSONObject.toJSONString(result.get("data")),Map.class);//获取data对象中的值
		
		List<Map<String,Object>>list=getList(data.get("placeOfDelivery"));//获取placeOfDelivery中的值转换成list
		System.out.println("list=============="+list);
		System.out.println("getlistValue======"+list.get(0));
		//将map转换成实体类中的值
		NeedInfo info=JSONObject.parseObject(JSONObject.toJSONString(list.get(0)),NeedInfo.class);//将map中的值放入实体类中,实体类名称和map字段名称不一致使用@JSONField(name="lineNum")注解转换
		System.out.println("将名称不一致字段的值放入对应字段中info============"+info);
		
	}
	//将object类型的list转换成list
	public static List<Map<String,Object>>getList(Object obj){
		 List<Map<String,Object>> result = new ArrayList<>();
		    if (obj instanceof List<?>) {
		        for (Object o : (List<?>) obj) {
		            result.add(Map.class.cast(o));
		        }
		    }
		    result.forEach(System.out::println); // 输出:1 ab
		return result;
	}


}

  //实体类

package yuanCheng.bean;

import java.io.Serializable;

import com.alibaba.fastjson.annotation.JSONField;
public class NeedInfo implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@JSONField(name="lineNum")
	private String line;
	@JSONField(name="value")
	private String valueName;
	public String getLine() {
		return line;
	}
	public void setLine(String line) {
		this.line = line;
	}
	public String getValueName() {
		return valueName;
	}
	public void setValueName(String valueName) {
		this.valueName = valueName;
	}
	@Override
	public String toString() {
		return "NeedInfo [line=" + line + ", valueName=" + valueName + "]";
	}
	

}

  //远程调用接口util类

package yuanCheng;

import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;


/**
 * create by Dell on 2020/6/17
 */
public class HttpUtil {
	//get请求
	public static String doGet(String url,String authValue){
		String result = null;
		CloseableHttpClient httpClient = HttpClients.createDefault();
		ResponseHandler<String> responseHandler = new BasicResponseHandler();
		try {
			HttpGet httpGet = new HttpGet(url);
			httpGet.setHeader("Content-type", "application/json");
			if(null!=authValue){
				httpGet.setHeader("Authorization","Bearer "+authValue);
			}
			result = httpClient.execute(httpGet, responseHandler);
		} catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			try {
				httpClient.close();
			} catch (Exception e) {
				System.out.println(e.getMessage());
			}
		}
		return result ;
	}

	// post请求参数为json格式
	public static String doJsonPost(String url, String json,String authValue) {
		String result = null;
		CloseableHttpClient httpClient = HttpClients.createDefault();
		ResponseHandler<String> responseHandler = new BasicResponseHandler();
		try {
			HttpPost httpPost = new HttpPost(url);
			StringEntity requestEntity = new StringEntity(json, "utf-8");
			requestEntity.setContentEncoding("UTF-8");
			httpPost.setHeader("Content-type", "application/json");
			if(null!=authValue){
				httpPost.setHeader("Authorization","Bearer "+authValue);
			}
			httpPost.setEntity(requestEntity);
			result = httpClient.execute(httpPost, responseHandler);
		} catch (Exception e) {
			System.out.println(e.getMessage());
		} finally {
			try {
				httpClient.close();
			} catch (Exception e) {
				System.out.println(e.getMessage());
			}
		}
		return result;
	}
}

  

原文地址:https://www.cnblogs.com/xianz666/p/14003688.html