linux怎么看fastjson版本,fastjson怎么查看版本?
FastJSON是一个Java语言编写的高性能,功能完善,可是在使用的过程中,想查看fastjson的版本如何操作?那么今天我们就给大家讲解一下fastjson查看版本的方法。
看Maven的pom.xml配置文件fastjson1.2.13
fastjson如何解析复杂嵌套json字符串?
这个实例是我在开发中用到的,先给出要解析的json字符串[
{
"id": "user_list"
, "key": "id"
, "tableName": "用户列表"
, "className": "cn.dmego.domain.User"
, "column": [
{
"key": "rowIndex"
, "header": "序号"
, "width": "50"
, "allowSort": "false"
},
{
"key": "id"
, "header": "id"
, "hidden": "true"
},
{
"key": "name"
, "header": "姓名"
, "width": "100"
, "allowSort": "true"
}
]
},
{
"id": "role_list"
, "key": "id"
, "tableName": "角色列表"
, "className": "cn.dmego.domain.Role"
, "column": [
{
"key": "rowIndex"
, "header": "序号"
, "width": "50"
, "allowSort": "false"
},
{
"key": "id"
, "header": "id"
, "hidden": "true"
},
{
"key": "name"
, "header": "名称"
, "width": "100"
, "allowSort": "true"
}
]
}
]
要想解析这种复杂的字符串,首先得先定义好与之相符的java POJO
对象,经过观察,我们发现,这个是一个json对象数组,每一个对象里包含了许多属性,其中还有一个属性的类型也是对象数组。所有,我们从里到外,先定义最里面的对象:public class Column
{
private String key;
private String header;
private String width;
private String allowSort;
private String hidden;
public String getKey()
{
return key;
}
public void setKey(String key)
{
this.key = key;
}
//这里省略部分getter与setter方法
}
再定义外层的对象:import java.util.List;
import org.apache.commons.collections4.map.LinkedMap;
public class Query
{
private String id;
private String key;
private String tableName;
private String className;
private List column;
private ListcolumnList;
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
//这里省略部分getter与setter方法
public List getColumn()
{
return column;
}
public void setColumn(List column)
{
this.column = column;
}
public ListgetColumnList()
{
return columnList;
}
public void setColumnList(ListcolumnList)
{
this.columnList = columnList;
}
}
我的这个json文件放置在类路径下,最后想将这个json字符串转化为List对象,并且将column 对象数组转化为query对象里的List属性
而实际转化过程中,fastjson将column对象数组转化为List;所有我们还需要将Map类型转化为object类型才能满足需求。/**
* 读取类路径下的配置文件
* 解析成对象数组并返回
* @throws IOException
*/
@Test
public Listtest() throws IOException
{
// 读取类路径下的query.json文件
ClassLoader cl = this.getClass()
.getClassLoader();
InputStream inputStream = cl.getResourceAsStream("query.json");
String jsontext = IOUtils.toString(inputStream, "utf8");
// 先将字符jie串转为List数组
ListqueryList = JSON.parseArray(jsontext, Query.class);
for (Query query: queryList)
{
ListcolumnList = new ArrayList();
List columns = query.getColumn();
for (LinkedMaplinkedMap: columns)
{
//将map转化为java实体类
Column column = (Column) map2Object(linkedMap, Column.class);
System.out.println(column.toString());
columnList.add(column);
}
query.setColumnList(columnList); //为columnList属性赋值
}
return queryList;
}
/**
* Map转成实体对象
* @param map map实体对象包含属性
* @param clazz 实体对象类型
* @return
*/
public static Object map2Object(Mapmap, Class clazz)
{
if (map == null)
{
return null;
}
Object obj = null;
try
{
obj = clazz.newInstance();
Field[] fields = obj.getClass()
.getDeclaredFields();
for (Field field: fields)
{
int mod = field.getModifiers();
if (Modifier.isStatic(mod) || Modifier.isFinal(mod))
{
continue;
}
field.setAccessible(true);
String flag = (String) map.get(field.getName());
if (flag != null)
{
if (flag.equals("false") || flag.equals("true"))
{
field.set(obj, Boolean.parseBoolean(flag));
}
else
{
field.set(obj, map.get(field.getName()));
}
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
return obj;
}
Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java
对象。这是作为java人员所要掌握的基本知识哦!最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。
推荐阅读:
更多推荐
所有评论(0)