json数组转list,list中的对象属性中,还有其它对象

将json数组转成list,list中的对象,还包含有其它对象

(一)如下实体类:所有实体省略 get() 、set()方法

1、学校类

public class School{
	private String name; //学校名
	private String pos;  //学校地址
	private List<Classes> classes;  //学校里的班级
}

2、班级类:

public class Classes{
	private String name; //班级名
	private String number;  //班级人数
}

(二)如下json字符串(仅是举例,不用太关心数据细节)

{
    "school_list": [{
            "name": "北京大学",
            "pos": "北京",
            "classes": [{
                    "name": "生物工程2010级一班"
                    "number": 30
                },
                {
                    "name": "软件工程2010级一班"
                    "number": 30
                },
            ]
        },
        {
            "name": "四川大学",
            "pos": "成都",
            "classes": [{
                    "name": "互联网2010级一班"
                    "number": 35
                },
                {
                    "name": "计科2010级一班"
                    "number": 15
                },
            ]
        }
    ]
}

(三)、json转换

	//上面的json字符串
	String jsonStr="";
	//转成json对象(com.alibaba.fastjson.JSON.parseObject)
	JSONObject jsonObj=JSONObject.parseObject(jsonStr);
	//获取json对象中,键school_list的值
	String schoolListStr = jsonObj.getString("school_list");
	//将json字符串转成json数组(net.sf.json.JSONArray.fromObject)
	JSONArray jsonArr = JSONArray.fromObject(schoolListStr);
	@SuppressWarnings("rawtypes")
	Map<String, Class> classMap = new HashMap<String, Class>();
	//将json数组转成list过程中,将json对象中的键为classes的值也转换成指定对象
	classMap.put("classes", Classes.class);
	//设置json转换配置(net.sf.json.JSONArray.toList)
	JsonConfig jsonConfig = new JsonConfig();
	jsonConfig.setClassMap(classMap);
	//转换(net.sf.json.JSONArray.toList)
	@SuppressWarnings("unchecked")
	List<School> vessel_list = JSONArray.toList(jsonArr, new School(),jsonConfig);

 

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值