天天看點

将JSON封包轉為Java對象

1.對于不同系統之間的接口調用,一般采用JSON作為資料傳輸格式,調用方将對象轉為JSON封包,服務端将JSON封包解析轉為Java對象,然後進行業務處理。本文旨在總結服務端如何将JSON封包轉為Java對象。

代碼示例

a.RequestDTO.java

import java.io.Serializable;
/**
 * 請求參數通用類
 * @author shixiangcheng
 * 2020-04-29
 */
public class RequestDTO<T> implements Serializable{
	private static final long serialVersionUID = -6983874423702879750L;
	private String callerCode;
	private T data;
	public String getCallerCode() {
		return callerCode;
	}
	public void setCallerCode(String callerCode) {
		this.callerCode = callerCode;
	}
	public T getData() {
		return data;
	}
	public void setData(T data) {
		this.data = data;
	}
}
           

b.DemoDTO.java

import java.io.Serializable;
/**
 * 實體
 * @author shixiangcheng
 * 2020-04-29
 */
public class DemoDTO implements Serializable{
	private static final long serialVersionUID = 1L;
	private int id;
	private String name;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}
           

c.TestClient.java

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
/**
 * 用戶端
 * @author shixiangcheng
 * 2020-04-29
 */
public class TestClient {
	public static void main(String [] args){
		//1.構造對象模拟接口請求JSON封包
		RequestDTO<DemoDTO> r=new RequestDTO<DemoDTO>();
		DemoDTO d=new DemoDTO();
		d.setId(1);
		d.setName("測試");
		r.setData(d);
		r.setCallerCode("88888");
		//2.列印JSON封包
		String reqJson=JSON.toJSONString(r);
		System.out.println(reqJson);
		//3.模拟服務端接收封包後解析轉為對象
		JSONObject jsonObject=JSON.parseObject(reqJson);
		String callerCode=jsonObject.getString("callerCode");
		String data=jsonObject.getString("data");
		DemoDTO demoDTO=JSON.parseObject(data,DemoDTO.class);
		//4.列印實體對象資訊
		System.out.println(JSON.toJSONString(demoDTO));
	}
}
           

歡迎大家積極留言交流學習心得,點贊的人最美麗,謝謝