将如下格式的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);
两种方式的区别没有仔细研究,知道的童鞋可以留言……