根据JSONArray str获得对象List
发布时间:2020-12-16 18:56:28 所属栏目:百科 来源:网络整理
导读:在coding中,我发现很多时候我们都需要把一个list/array存到数据库, 然后在需要返回给前端的时候,或者我们需要操作这个的时候,我们需要把这个string又转换成List Object,奇怪的是fastJson的JSONArray居然不提供这个功能。而net.sf.json则是有这个功能了
在coding中,我发现很多时候我们都需要把一个list/array存到数据库, /** * 根据JSONArray String获取到List * @param <T> * @param <T> * @param jArrayStr * @return */
public static <T> List<T> getListByArray(Class<T> class1,String jArrayStr) {
List<T> list = new ArrayList<>();
JSONArray jsonArray = JSONArray.parseArray(jArrayStr);
if (jsonArray==null || jsonArray.isEmpty()) {
return null;
}
for (Object object : jsonArray) {
JSONObject jsonObject = (JSONObject) object;
T t = JSONObject.toJavaObject(jsonObject,class1);
list.add(t);
}
return list;
}
/** * 根据List获取到对应的JSONArray * @param list * @return */
public static JSONArray getJSONArrayByList(List<?> list){
if (list==null ||list.isEmpty()) {
return null;
}
JSONArray jsonArray = new JSONArray();
for (Object object : list) {
jsonArray.add(object);
}
return jsonArray;
}
/** * main方法 用于测试 * @param args */
public static void main(String args[]) {
List<PortMetadataVo> portMetadataVos = getListByArray(PortMetadataVo.class,"[{'k8sSvcFlag':1,'protocol':'TCP','port':7880,'domain':'','targetPort':8082}]");
for (PortMetadataVo portMetadataVo : portMetadataVos) {
System.out.println(portMetadataVo.getTargetPort());
}
System.out.println(getJSONArrayByList(portMetadataVos).toJSONString());
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |