java中Json转换成Map或List相关整理
一般前端传入后台的json数据都会封装再Map中的一个元素中,先获取json数据转换成String,通过JSON的parseObject方法转成Map,parseArray方法转成list。
/**praseObject方法适用于{ "id" : "123", "courseID" : "huangt-test", "title" : "提交作业", "content" : null }格式参数,直接转换成Map*/
public List parserData(Map params, IResult rs ) {
Object obj = params.get("jsonData");
Map json;
if( obj instanceof JSONObject){
json = (Map)obj;
}else{
String jsonData = (String)params.get("jsonData");
**json = JSON.parseObject(jsonData,Map.class);**
}
return (List) json.get("data");
}
/**parseArray方法适用于 [ { "id" : "123", "courseID" : "huangt-test", "title" : "提交作业" } , { "content" : null, "beginTime" : 1398873600000 "endTime" } ]格式参数,直接转换成List<Map>格式*/
public static List getDataList(Object mapData) {
Map map_data = null;
List<Map> map_data_list = new ArrayList<Map>();
if (mapData instanceof Map || mapData instanceof JSONObject) {
map_data = (Map) mapData;
} else if (mapData instanceof String) {
try {
**map_data = JSON.parseObject((String) mapData, Map.class);**
} catch (Exception ex) {
**map_data_list = JSON.parseArray((String) mapData, Map.class);**
}
}
if (map_data_list.size() == 0) {
map_data_list.add(map_data);
}
return map_data_list;
}
如何从字符串String获得JSONObject对象和JSONArray对象
JSONObject jsonObject = new JSONObject ( String str);
JSONArray jsonArray = new JSONArray(String str ) ;
如何从JSONArray中获得JSONObject对象
大家可以把JSONArray当成一般的数组来对待,只是获取的数据内数据的方法不一样
JSONObject jsonObject = (JSONObject)jsonArray.get(i);
JSONObject jsonObject = jsonArray.getJSONObject(i) ;
两者都可。第一种注意转换
获取JSON内的数据
int jid= jsonObject.getInt ( "id" ) ; // 这里的jid得到的数据就是123.
String jcourse=jsonObject.getString( " courseID") ; // 这里的jcourse得到的数据就是huangt-test.
Strirng jcourse = jsonObject.get("courseID").toString();
一般地 为键值对
eg:{ name:"xm", value:"张三"}
String jname = null;
if(jsonObject.get("name").equals("xm")){
jname=jsonObject.get("value").toString();
}
本文章是本人自己结合最近的研究以及网上相关资料的整理,第一次写文章,有诸多不好之处望多多海涵。同时有问题望各位大神指出来,一起学习一起进步。