2020-11-04课堂笔记之JSON

json与两种格式

与页面交互
一种轻量级的数据交换格式、基于纯文本的
json:基于javascript语法的一个子集
在javascript中单引号和双引号没有区别
json表示数组:[“张三”,“李四”,“王五”]
**json表示对象:{}**属性:值
可以是对象、数组、布尔(true,false)、数值、字符串、Object、null
stu1:{id:1,name:“小红”,age:18}
json在线格式转化网址,点此进入
网址:https://www.bejson.com/

提供json工具fastjson-1.2.49(文末有百度网盘链接)
在这里插入图片描述

json的作用

java对象转json字符串
在这里插入图片描述
如下图所示:
在这里插入图片描述
json字符串转java对象
在这里插入图片描述
如下图所示:
在这里插入图片描述
javascript脚本转对象:eval()方法

集合对象转json

		Student student2=new Student(2,"小明",20,'男');
		Student student3=new Student(3,"小张",21,'男');
		Student student4=new Student(4,"小李",22,'男');
		List<Student>list =new ArrayList<Student>(); 
		list.add(student);
		list.add(student2);
		list.add(student3);
		list.add(student4);
//集合转json
		response.getWriter().write(JSON.toJSONString(list));

list转json字符串:
在这里插入图片描述
map转json字符串:

HashMap<Integer,Student> map=new HashMap();
		map.put(student.getId(),student);
		map.put(student2.getId(),student2);
		map.put(student3.getId(),student3);
		map.put(student4.getId(),student4);
//list集合转json:
		response.getWriter().write(JSON.toJSONString(list));
//map集合转json:
		response.getWriter().write(JSON.toJSONString(map));

在这里插入图片描述

区别:
由于map由键值对组成,故输出格式为{键:{值},键:{值}}
而list集合的输出格式为[{对象1},{对象2},{对象3},{对象4}]

Json转java对象

//2json转对象
	String temp="{id:2,name:'小明',age:20,sex:'男'}";
	Student student2;
	student2=JSON.parseObject(temp, Student.class);
	//student2=JSON.parseObject(temp, new Student().getClass());//两种
	System.out.println(student2);

效果如下:
在这里插入图片描述

Json转集合对象

String temp=request.getParameter("data");

//List<Student> list2=JSON.parseObject(temp,List.class);//此方法得到的是JSONObject类型,并不是Student类型
//System.out.println(list2);

List<JSONObject> list2=JSON.parseObject(temp,List.class);
List<Student> list3=new ArrayList<>();
for (JSONObject temp2 : list2) {
	Student stu=JSONObject.parseObject(temp2.toJSONString(), Student.class);
	list3.add(stu);
}
System.out.println(list3);

当在url中输入一条json数据后回车将会打印出如下的效果
在这里插入图片描述
在这里插入图片描述

补充

关于强制类型转换:可以发生在父子类中,有从属关系
JSONObject转对象类型:Student是类名,不是类
JSONObject.parseObject(temp2.toJSONString(),Student.class);
不复写toString()方法的话,默认打印内存中的地址

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值