JSON入门

本文介绍了JavaScript如何处理JSON数据,包括JSON数据的字符串转换,以及使用FastJSON在Java中进行对象与JSON的互转。通过示例展示了如何在前端展示JSON数据,并提供了FastJSON的注解用法,帮助理解JSON在实际开发中的应用。
摘要由CSDN通过智能技术生成

概述

JavaScript 天生就支持json , 前后端非常适合通过json来传递数据
一个json的例子:
在这里插入图片描述
在进行前后端数据传输的过程中,要把 json 数据转换成字符串,在拿到数据后再把 字符串转回 json 前端再对拿到json数据进行处理展示。
对json数据进行访问的例子:

<script type="text/javascript">
	var json = [
	{
		"eno": 2001,
		"ename": "Lucy",
		"job": "软件工程师",
		"hiredate": "2020-01-28",
		"dname": "研发部"
	},
	{
		"eno": 2002,
		"ename": "Mike",
		"job": "销售经理",
		"hiredate": "2020-01-28",
		"dname": "销售部",
		"customers": [
			{
				"name": "张三"
			},
			{
				"name": "李四"
			}
		]
	}
];
	console.log(json);
	for(var i=0;i<json.length;i++){
		var emp = json[i];
		document.write("<h1>");
		document.write(emp.eno+" ");
		document.write(emp.ename+" ");
		document.write(emp.job+" ");
		document.write(emp.hiredate+" ");
		document.write(emp.dname+" ");
		document.write("</h1>");
		if(emp.customers!=null){
			for(var j=0;j<emp.customers.length;j++){
				var cus = emp.customers[j];
				document.write("<h2>------");
				document.write(cus.name+" ");
				document.write("------</h2>");
			}
		}
	}

</script>

JSON与字符串相互转换

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

	var json = {"name":"张三"};
	var str = JSON.stringify(json);
	console.info(json);
	console.info(str);
	
	var json2 = {};
	json2.id="201";
	json2.name="小明";
	console.log(json2);

字符串转json

	var str = "{\"name\":\"张三\"}";
	var json = JSON.parse(str);
	console.log(str);
	console.log(json);

使用Fast JSON完成 Java与JSON的交互

在这里插入图片描述
先导入需要的jar
在这里插入图片描述
例子一:单个对象

		Employee employee = new Employee(201, "Lucy", 6000f, "sale");
		//date也可以输入指定格式的字符串再进行转化,比下面用的这种方法要简单不少
		Calendar c = Calendar.getInstance();
		c.set(2019, 0, 30, 0, 0, 0);//年月日时分秒(月份从0开始,0就是1月)
		employee.setHdate(c.getTime()); //getTime 获取的是时间戳,使用json注解进行格式转化!
		//FastJSON中提供了JSON对象,完成对象与JSON字符串的互相转换
		String json = JSON.toJSONString(employee);
		System.out.println(json);
		Employee emp = JSON.parseObject(json, Employee.class);
		System.out.println(emp.getEname());

例子二:集合

		List<Employee> employeeList = new ArrayList<Employee>();
		for(int i=1;i<=100;i++) {
			int eno = 200+i;
			String ename = "员工"+i;
			Employee employee = new Employee(eno, ename, null, null);
			employeeList.add(employee);
		}
		String json = JSON.toJSONString(employeeList);
		System.out.println(json);
		List<Employee> employees = JSON.parseArray(json, Employee.class);
		for(Employee e:employees) {
			System.out.println(e);
		}

可以使用下面这句话将json数据传递给前端,供前端调用展示

response.getWriter().print(strJosn);

FastJson的注解

	private Integer eno;
	private String ename;
	private Float salary;
	@JSONField(serialize = false)//进行json转化时忽略这一项
	private String dname; 
	@JSONField(format = "yyyy-MM-dd")
	private Date hdate;

这里使用了两个常用的注解,一个是在进行json转化时忽略这个变量
另一个是指定日期格式(将时间戳转化成正常的日期格式)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值