sjunothing 2013-06-29
最近有个需求,一个JSON字符串存储在数据库表中。需要将其转换为Java对象。 最开始用的是GSON,但是该Jar包功能不够强大,碰到值中有特殊字符的就会抛出异常。比如:/ , : 等。 最后决定用json-lib.jar试试,发现json-lib.jar比GSON强大。值中有特殊字符也可以解析。
/**
* 根据指定的JSON字符串转换为Java对象链表,并返回。
*
* @param <T> 参数化类型
* @param jsonInput json字符串
* @param clazz 参数化类型class对象
* @return 返回转换后的对象链表
*/
@SuppressWarnings({ "unchecked", "static-access" })
public static <T> List<T> getObjList(String jsonInput, Class<? extends T> clazz)
{
List<T> resultList = new LinkedList<T>();
JSONArray jsonArray = JSONArray.fromObject(jsonInput);
Object tmpObj = null;
JSONObject jsonObject = null;
for (int i = 0; i< jsonArray.size(); i++)
{
tmpObj = jsonArray.get(i);
jsonObject = JSONObject.fromObject(tmpObj);
resultList.add((T) jsonObject.toBean(jsonObject, TLawGuideAttachment.class));
}
return resultList;
}