String類型的Json轉換爲java對象

將如下格式的json格式轉換爲List<java對象> 

[
  {
    "label": "字段1",
    "key": "one",
    "width": 100,
    "checked": true
  },
  {
    "label": "字段2",
    "key": "two",
    "checked": true
  }
]

1.方式一:阿里巴巴

       <!--- alibaba json maven pom.mxl 配置 --> 
       <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.39</version>
        </dependency>
//json導入
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
	public <T> List<T> getListDTO(String jsonString, Class<T> clazz) {
		List<T> userSetColumsList = new ArrayList<>();
		List<JSONObject> jsonUserSetColumsList = (List<JSONObject>) com.alibaba.fastjson.JSON.parse(jsonString);
		for(JSONObject jsonObject : jsonUserSetColumsList) {
			T obj = JSONObject.toJavaObject(jsonObject, clazz);
			userSetColumsList.add(obj);
		}
		return userSetColumsList;
	}

方法二:

導入:

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.reflect.TypeToken;

    /**
     * json數組字符串轉list
     *
     * @param <T>
     * @param jsonString
     * @param clazz
     * @return
     */
    public static <T> List<T> getListDTO(String jsonString, Class<T> clazz) {
        List<T> retList = new ArrayList<>();
        Gson gson = new Gson();
        Type type = new TypeToken<List<T>>() {
        }.getType();
        List<T> tmpList = gson.fromJson(jsonString, type);
        for (int i = 0; i < tmpList.size(); i++) {
            String objStr = gson.toJson(tmpList.get(i), LinkedHashMap.class);
            T obj = gson.fromJson(objStr, clazz);
            retList.add(obj);
        }
        return retList;
    }

 

-----------------------------------調用相同

//轉換時使用的java實體對象

package com.tfit.BdBiProcSrvShEduOmc.dto.user;

import lombok.Data;
@Data
public class UserSetColums {
	String label;
	String key;
	int width;
	int checked;
}

調用:

List<UserSetColums> userSetColumsList = com.tfit.BdBiProcSrvShEduOmc.util.JsonUtil.getListDTO(userSetColumns, UserSetColums.class);

 

兩種方式的區別沒有仔細研究,知道的童鞋可以留言……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章