javajson转换为泛型_⼀个jsonstring和泛型对象转换的经典实
例
花了我三个多⼩时(java还需要努⼒啊);
只有我⾃⼰看得懂,哈哈
/**elbert.chenh寫於2010年1⽉5⽇晚
* 实现如下功能
* 1.将⽤户传递的个性化的jsonstr队列转换为标准化的统⼀的jsonstr队列
* 如队列中的元素{/"taskId/":/"t01/",/"sceneId/":/"s01/",/"caseId/":/"cs01/",/"SYNOPSIS/":/"p1/",/"id/":1,/"cpu/":/"cpu01/"}
* 转化为标准化元素
{/"taskId/":/"t01/",/"sceneId/":/"s01/",/"caseId/":/"cs01/",/"param1/":/"p1/",/"id/":1,/"param10/":/"cpu01/"}
* 2.将队列中的jsonstr转换为对应的类实例
* 3.调⽤插⼊数据库函数将结果插⼊数据库中
* @param jstrCaseLog
*/
public void insertCaseLog(String jstrCaseLog)
{
List ls = stplat.help.JsonFunc.fromJSON(
jstrCaseLog, ArrayList.class);
//取得数据库中所有的LogParam
TestCaseService tss = new TestCaseService();
List lp = LogParamList();
List lstmp = new ArrayList();
LinkedHashMap map = new LinkedHashMap();
for (int i = 0; i < ls.size(); i++) {
map = (LinkedHashMap) ls.get(i);
for (int j = 0; j < map.keySet().size(); j++) {
//使⽤Key去寻是哪个Param,如果不是那么就返回⾃⼰
for(int k = 0; k < lp.size(); k++)
{
LogParam tmplp = lp.get(k);
//如果传⼊的参数别名=某条记录的参数别名,那么替换为该参数实际名称
if(map.keySet().toArray()[j].toString().toLowerCase().ParamAlias().toLowerCase()))
{
Object value = (map.keySet().toArray()[j]);
map.ParamName().toLowerCase(), value);
}
}
}
lstmp.add(map);
}
String tempstr = stplat.JSON(lstmp);
List deslp = stplat.help.JsonFunc.fromJSON(tempstr, ArrayList.class);
for(int index = 0; index < deslp.size(); index++)
{
String cp = getListNode(deslp,index);
CaseLog tlp = stplat.help.JsonFunc.fromJSON(cp, CaseLog.class);
CaseLogDao.InsertCaseLog(tlp);
}
}
public String getListNode(List ls,int index)
{
StringBuilder desstr = new StringBuilder("{");
LinkedHashMap map = new LinkedHashMap();
map = (LinkedHashMap) ls.get(index);
for (int j = 0; j < map.keySet().size(); j++) {
//如果传⼊的参数别名=某条记录的参数别名,那么替换为该参数实际名⾂
Object key = map.keySet().toArray()[j];
Object value = (map.keySet().toArray()[j]);
if(j < (map.keySet().size()-1))
{
if (value != null)
{
desstr.append("/"").String()).append("/":").append("/"").String()).append("/"").append(","); }
else
{
desstr.append("/"").String()).append("/":").append("null").append(",");
}
}
else
{
if (value != null)
{
desstr.append("/"").String()).append("/":").append("/"").String()).append("/"").append("}");
}
else
{
desstr.append("/"").String()).append("/":").append("null").append("}");
}
}
}
System.out.String());
String();
}
json转换对象public static String toJSON(Object obj) { StringWriter writer = new StringWriter(); try {
mapper.writeValue(writer, obj); } catch (JsonGenerationException e) { throw new RuntimeException(e); } catch (JsonMappingException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } String(); } public static T fromJSON(String json, Class clazz) { ObjectMapper mapper = new ObjectMapper();
try { adValue(json, clazz); } catch (JsonParseException e) { throw new RuntimeException(e); } catch (JsonMappingException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论