JavaWeb学习笔记——JSON详解

本文是学习Java时所记录的学习笔记,本节记录了JSON的相关知识,需要掌握JSON的书写格式,懂得JSON与String类型的转换。

JSON简介

什么是JSON?

JavaScript Object Notation(JavaScript对象表示法),是一个轻量级的文本数据交换格式,数据的一种表达方式。独立于语言,具有自我描述性,容易理解。

因为JSON的结构简洁清晰,所以通常JavaScript和web服务器后端数据交互的时候会采用JSON格式进行传输。

需要能够读懂JSON格式的内容,掌握JSON转String和String转JSON。

JSON语法规则
  • 数据由键/值成对出现,由逗号分隔
  • 大括号({})代表一个完整的对象,拥有多个键值对
  • 中括号([])保存数组,多个对象之间使用逗号分隔
JSON语法示例
{
	"sites":[
	{"name":"百度","url":"www.baidu.com"},
	{"name":"淘宝","url":"www.taobao.com"},
	{"name":"网易","url":"www.163.com"}
	]
}

JSON的具体实现

JavaScript与JSON(前端处理JSON)
JavaScript中使用JSON对象的方法

在JavaScript中,可以直接把JSON对象当做普通对象使用。

JavaScript中字符串与JSON对象互转的方法
JS中的方法说明示例
JSON.parse()传入字符串,把字符串转成jsonJSON.parse(str)
JSON.stringify()传入对象,把JSON对象转为字符串JSON.stringify(json)
Java与JSON(后端处理JSON)
通过JSON工具包处理JSON数据

把Java对象转换为JSON,或者JSON转换为Java对象的第三方组件,称为JSON工具包。常用的JSON工具包:

  • FastJSON(国内阿里巴巴)
  • Jackson(国外老牌)
  • Gson(谷歌开发)
  • Json-lib(开源平台)。
FastJSON需要的JAR包

jastjson.jar

官方网站:www.github.com 搜索jastjson

Fastjson工具使用方法

引用JAR包后可以直接使用

方法说明返回值示例
toJSONString()类方法,把Java对象转换为JSON字符换String
parseObject()类方法,把JSON字符串转换为Java对象JSON.parseObject(str,Employee.class)
toJSONString()将常用数据结构转换为JSON字符串String
parseArray()将JSON字符串转换为数组对象ListJSON.paarseArray(jsonstr,Employee.class)

fastjson工具的@JsonField注解

  • 在封装对象时,使用fastjson提供的@JsonField注解,可以定义对象中某个全局变量在JSON转换时采用注解属性所代表的含义。

  • 例如:在employee.java类中的uname全局变量上一行使用@JSONField(name=“UserName”),则操作fastjson对该类的对象转换成JSON格式时,会把uname的改为UserName。

  • 以下是@JSONField注解可选的属性:

    注解属性说明示例
    name给当前变量起别名@JSONField(name=“tom”)
    format可用于格式化日期@JSONField(format=“yyyy-MM-dd HH:mm:ss”)
    serialize表示是否对该变量序列化,false为不序列化@JSONField(serialize=false)
  • 案例

    • Employee.java类
    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;
        //以下省略部分内容
    }	
    
    • FastJsonDemo.java类
    public class FastJsonDemo {
    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());
    	String json = JSON.toJSONString(employee);
    	System.out.println(json);
    	Employee emp = JSON.parseObject(json, Employee.class);
    	System.out.println(emp.getEname());
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值