Gson 复杂类型的json转对象

Gson 复杂类型的json转对象

使用Gson对json数组进行转换,如果遇到如下格式的json应该怎么样来转呢,下面的字符串是map里面不但存放了String,还存放了list<map>结构类型

String  mapJson= "{'a':'a1','b':'b1','c':[{'d':'d1'}]}";

我们前台使用如下代码进行封装,得到的字符串结构就是上面的结构

var jsons={
	"assignee":"${hashmap['sys_screenname'] }",
	"proKey":'youhuaqc',
	"audit":'yes',
	"audityj":'提交清查计划',
	"executions":'',
	"sqlvarIDs":$("#checkQCCreate_form input[name='qccode']").val(),
	"zxr":$("#checkQCCreate_form input[name='screenname']").val()
	}
var jsonformList=[];
jsonformList.push(formData);
jsons.jsonform=jsonformList;
var datas = JSON.stringify(jsons);

那么我们在后台可以这样进行解析,如下面的方法所示

public void jsonToMap(){
    String  mapJson= "{'a':'a1','b':'b1','c':[{'d':'d1'}]}";
    Map<String,Object> fromJson = new Gson().fromJson(mapJson, Map.class);
    List<Map<String,String>> str = (List<Map<String, String>>) fromJson.get("c");
    System.out.println(str.get(0).get("d"));
}

上面代码中,对于key为c的数据,我们直接进行强制转换

如果我们这样写

Map<String,String> fromJson = new Gson().fromJson(mapJson, Map.class);

是错误的,Gson不会报错,但是执行到这里,整个方法会被中止。


爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情Blog Img