天天看點

JsonObject将list轉化為json資料、json資料轉回listlist生成json代碼json轉list代碼

近期項目需要 參照團隊代碼使用Gson的JsonObject操作json資料 實作背景接收到list資料後将其轉化為json格式資料存儲在資料庫表的一個字段中 以及從資料庫取出後以list的形式發往前端

添加maven依賴

<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-annotations</artifactId>
	<version>2.9.4</version>
</dependency>
<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-core</artifactId>
	<version>2.9.4</version>
</dependency>
<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-databind</artifactId>
	<version>2.9.4</version>
</dependency>
           

導包

import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
           

json與list互轉需要的model對象

public class Particular {

	private Integer iid;
	private float score;
	private String particulars;
	
	public Integer getIid() {
		return iid;
	}
	public void setIid(Integer iid) {
		this.iid = iid;
	}
	public String getParticulars() {
		return particulars;
	}
	public void setParticulars(String particulars) {
		this.particulars = particulars;
	}
	public float getScore() {
		return score;
	}
	public void setScore(float score) {
		this.score = score;
	}
	
}
           

list生成json代碼

public String listToJson(List<Particular > record){
		JsonArray array = new JsonArray();
		JsonParser jsonParser = new JsonParser();	
		for(Particular p:record) {		
			JsonObject object = new JsonObject();
			object.addProperty("iid", p.getIid());
			object.addProperty("score", p.getScore());
			object.addProperty("particulars", p.getParticulars());
			array.add(jsonParser.parse(object.toString()));
		}
		return array.toString();
	}
           

生成的json格式資料

  1. 格式截圖
    JsonObject将list轉化為json資料、json資料轉回listlist生成json代碼json轉list代碼
  2. json代碼
[
    {
        "iid": 0,
        "score": 20,
        "particulars": "國前一"
    },
    {
        "iid": 1,
        "score": 15,
        "particulars": "國前二"
    },
    {
        "iid": 2,
        "score": 10,
        "particulars": "國前三"
    },
    {
        "iid": 3,
        "score": 5,
        "particulars": "國優秀獎"
    },
    {
        "iid": 4,
        "score": 10,
        "particulars": "省前一"
    },
    {
        "iid": 5,
        "score": 9,
        "particulars": "省前二"
    },
    {
        "iid": 6,
        "score": 8,
        "particulars": "省前三"
    },
    {
        "iid": 7,
        "score": 7,
        "particulars": "省優秀獎"
    },
    {
        "iid": 8,
        "score": 8,
        "particulars": "市前一"
    },
    {
        "iid": 9,
        "score": 7,
        "particulars": "市前二"
    },
    {
        "iid": 10,
        "score": 6,
        "particulars": "市前三"
    },
    {
        "iid": 11,
        "score": 5,
        "particulars": "市優秀獎"
    },
    {
        "iid": 12,
        "score": 5,
        "particulars": "校前一"
    },
    {
        "iid": 13,
        "score": 4,
        "particulars": "校前二"
    },
    {
        "iid": 14,
        "score": 3,
        "particulars": "校前三"
    },
    {
        "iid": 15,
        "score": 1,
        "particulars": "校優秀獎"
    },
    {
        "iid": 16,
        "score": 4,
        "particulars": "院前一"
    },
    {
        "iid": 17,
        "score": 3,
        "particulars": "院前二"
    },
    {
        "iid": 18,
        "score": 2,
        "particulars": "院前三"
    },
    {
        "iid": 19,
        "score": 1,
        "particulars": "院優秀獎"
    }
]
           

json轉list代碼

public List<Particular> JsonToList(String str){
		return getObjectList(str, Particular.class);
	}

	public static <T> List<T> getObjectList(String jsonString,Class<T> cls){
		List<T> list = new ArrayList<T>();
		try {
			Gson gson = new Gson();
			JsonArray arry = new JsonParser().parse(jsonString).getAsJsonArray();
			for (JsonElement jsonElement : arry) {
				list.add(gson.fromJson(jsonElement, cls));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}