fastjson转list嵌套_Fastjson解析嵌套Map例子

由于在实际工作中使用fastjson解析嵌套map的场景非常多,所以在此备忘一下:

引入阿里的fastjson的pom:

com.alibaba

fastjson

1.2.15

一个比较复杂的json例子:

{

"actId": "1800025",

"originCode": 1,

"role": "TEACHER",

"time": 1471077017804,

"userId": "1111",

"userName": "测试教师",

"userIcon": "xyz",

"userIp": "1.1.1.1",

"countyId": "370105",

"countyName": "天桥区",

"schoolId": "1234",

"schoolName": "测试小学",

"data": {

"subjectId": "020",

"subjectName": "数学",

"uploadFileList": [

{

"teachFileType": "1",

"custom": "xtz"

},

{

"teachFileType": "1"

}

]

}

}

使用fastjson的解析代码:

import com.alibaba.fastjson.JSON;

import java.util.List;

import java.util.Map;

/**

* Created by Administrator on 2016/8/12.

*/

public class ParserJson {

/***

*

* @param map 需要打印的Map结构

*/

public static void showMap(Map map){

for(Map.Entry kv:map.entrySet()){

System.out.println(kv.getKey()+" "+kv.getValue());

}

}

public static void main(String[] args) throws Exception {

String json="{\"actId\":\"2300003\",\"originCode\":1,\"role\":\"TEACHER\"" +

",\"time\":1470126407000,\"userId\":\"1111\",\"userName\":\"测试教师\",\"userIcon\":\"xyz\",\"userIp\":\"1.1.1.1\",\"countyId\":\"370105\",\"countyName\":\"天桥区\",\"schoolId\":\"1234\",\"schoolName\":\"测试小学\",\"data\":{\"subjectId\":\"020\",\"subjectName\":\"数学\"," +

"\"uploadFileList\":[{\"teachFileType\":\"1\"},{\"teachFileType\":\"1\",\"custom\":\"xt\"},{\"teachFileType\":\"1\"}]}}";

Map map=(Map)JSON.parse(json);

System.out.println("打印第一层map");

showMap(map);

Map dataMap=(Map) map.get("data");

System.out.println("打印第二层map");

showMap(dataMap);

System.out.println("打印第三层list+map");

List> fileList= (List>) dataMap.get("uploadFileList");

for(Map soj:fileList){

System.out.println(soj);

Map detailData=soj;

showMap(detailData);

System.out.println("----------------------------------------");

}

}

}

解析结果:

ParserJson

打印第一层map

role TEACHER

data {"uploadFileList":[{"teachFileType":"1"},{"custom":"xt","teachFileType":"1"},{"teachFileType":"1"}],"subjectId":"020","subjectName":"数学"}

actId 2300003

userName 测试教师

userId 1111

countyId 370105

schoolId 1234

userIp 1.1.1.1

originCode 1

time 1470126407000

userIcon xyz

schoolName 测试小学

countyName 天桥区

打印第二层map

uploadFileList [{"teachFileType":"1"},{"custom":"xt","teachFileType":"1"},{"teachFileType":"1"}]

subjectId 020

subjectName 数学

打印第三层list+map

{"teachFileType":"1"}

teachFileType 1

----------------------------------------

{"custom":"xt","teachFileType":"1"}

custom xt

teachFileType 1

----------------------------------------

{"teachFileType":"1"}

teachFileType 1

----------------------------------------

Process finished with exit code 0

有什么问题可以扫码关注微信公众号:我是攻城师(woshigcs),在后台留言咨询。

技术债不能欠,健康债更不能欠, 求道之路,与君同行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值