StringタイプのJsonをjavaオブジェクトに変換
2485 ワード
下記形式のjson形式をListに変換
[{"label":[フィールド1],[key]:[one],[width]:100,[checked]:true},{[label]:[フィールド2],[key]:[two],[checked]:true}]
1.方式一:アリババ
方法2:
インポート:
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;
--------------------------------------呼び出しは同じです
//変換時に使用するjavaエンティティオブジェクト
呼び出し:
2つの方法の違いはよく研究されていませんが、知っている子供靴は伝言を残すことができます......
[{"label":[フィールド1],[key]:[one],[width]:100,[checked]:true},{[label]:[フィールド2],[key]:[two],[checked]:true}]
1.方式一:アリババ
com.alibaba
fastjson
1.2.39
//json
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public List getListDTO(String jsonString, Class clazz) {
List userSetColumsList = new ArrayList<>();
List jsonUserSetColumsList = (List) com.alibaba.fastjson.JSON.parse(jsonString);
for(JSONObject jsonObject : jsonUserSetColumsList) {
T obj = JSONObject.toJavaObject(jsonObject, clazz);
userSetColumsList.add(obj);
}
return userSetColumsList;
}
方法2:
インポート:
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
* @param jsonString
* @param clazz
* @return
*/
public static List getListDTO(String jsonString, Class clazz) {
List retList = new ArrayList<>();
Gson gson = new Gson();
Type type = new TypeToken>() {
}.getType();
List 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 userSetColumsList = com.tfit.BdBiProcSrvShEduOmc.util.JsonUtil.getListDTO(userSetColumns, UserSetColums.class);
2つの方法の違いはよく研究されていませんが、知っている子供靴は伝言を残すことができます......