IMOOC个人笔记 JSON基础

JSON介绍:
在这里插入图片描述
JSON语法规则:
在这里插入图片描述标准案例:
在这里插入图片描述1.{}代表里面这段完整的代码是一个对象,可以被JavaScript直接识别。
2.“sites"是一个键,是将来提取数据时的关键字。
3.[]表示数组。
上图的数组包含了三个网站的信息。每一个网站都是一个标准的JavaScript对象,也是由大括号进行包裹,其中有两个键值对,“键”:“值”。JSON中键和值都是用”"进行包裹,多个键值对使用 , 进行分割。
在这里插入图片描述JSON与字符串的互相转换:
在这里插入图片描述 JSON是浏览器内置对象,可以用JavaScript直接调用。JSON是一个比较新的对象,对于IE8以下的版本是不支持的。

JS中将字符串转为JSON 案例:
在这里插入图片描述运行结果:
在这里插入图片描述JS中JSON转为字符串 案例:
在这里插入图片描述运行结果:
在这里插入图片描述JSON与JAVA交互

JSON序列化工具包:把Java对象转化为JSON或者把JSON转化为Java对象,这样的第三方组件成为JSON工具包。

常用的JSON工具包:
在这里插入图片描述FastJson:
在这里插入图片描述下载:
在这里插入图片描述FastJSON对象序列化与反序列化案例:

Employee.java

package com.imooc.json;

import java.util.Date;

import com.alibaba.fastjson.annotation.JSONField;

public class Employee {
	private Integer empno;
	private String ename;
	private String job;
	//@JSONField(format="yyyy-MM-dd HH:mm:ss SSS")
	@JSONField(name = "hiredate" , format="yyyy-MM-dd")
	private Date hdate;
	private Float salary;
	@JSONField(serialize = false)
	private String dname;
	public Integer getEmpno() {
		return empno;
	}
	public void setEmpno(Integer empno) {
		this.empno = empno;
	}
	public String getEname() {
		return ename;
	}
	public void setEname(String ename) {
		this.ename = ename;
	}
	public String getJob() {
		return job;
	}
	public void setJob(String job) {
		this.job = job;
	}
	public Date getHdate() {
		return hdate;
	}
	public void setHdate(Date hdate) {
		this.hdate = hdate;
	}
	public Float getSalary() {
		return salary;
	}
	public void setSalary(Float salary) {
		this.salary = salary;
	}
	public String getDname() {
		return dname;
	}
	public void setDname(String dname) {
		this.dname = dname;
	}
	
	
}

FastJsonSample1

package com.imooc.json;

import java.util.Calendar;

import com.alibaba.fastjson.JSON;

public class FastJsonSample1 {
	public static void main(String[] args) {
		Employee employee = new Employee();
		employee.setEmpno(4488);
		employee.setEname("王晓东");
		employee.setJob("客户经理");
		employee.setSalary(10000f);
		employee.setDname("市场部");
		Calendar c = Calendar.getInstance();
		c.set(2019, 0, 30, 0, 0, 0);
		employee.setHdate(c.getTime());
		//FastJSON中提供了JSON对象,完成对象与JSON字符串的互相转换
		String json = JSON.toJSONString(employee);
		System.out.println(json);
		//JSON转化为对象
		Employee emp = JSON.parseObject(json, Employee.class);
		System.out.println(emp.getEname());
	}
}

其中FastJSON提供的注解:
@JSONField(name = “hiredate” , format=“yyyy-MM-dd”) 用于格式化Date类型数据,name属性为输出的key的名字

@JSONField(serialize = false) 如果有不想进行json序列化的属性可以使用该注解。false=不进行序列化操作。

运行结果:
在这里插入图片描述
JSON数组有多个对象:

FastJsonSample2.java

package com.imooc.json;

import java.util.ArrayList;
import java.util.List;

import com.alibaba.fastjson.JSON;

public class FastJsonSample2 {
	public static void main(String[] args) {
		List emplist = new ArrayList();
		for (int i = 1 ; i <= 100 ; i++) {
			Employee employee = new Employee();
			employee.setEmpno(4488 + i);
			employee.setEname("员工" + i);
			emplist.add(employee);
		}
		String json = JSON.toJSONString(emplist);
		System.out.println(json);
		List<Employee> emps = JSON.parseArray(json , Employee.class);
		for(Employee e : emps) {
			System.out.println(e.getEmpno() + ":" + e.getEname());
		}
	}
}

运行结果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值