《JSON》

《JSON》

<大纲>

掌握JSON语法的书写规则

掌握JSON与JavaScript的交互技巧

掌握JSON与Java之间的序列化与反序列化

1.JSON介绍

  • 轻量级的数据交换格式
  • 独立于编程语言的文本格式来存储和表示数据
  • 利于人阅读和编写,同时也易于机器解析和生成

2.JSON语法规则

  • JSON是一个标记符的序列。这套标记符包含六个构造字符字符串数字和三个****字面名****。

  • JSON是一个序列化的对象数组

  • 6个构造字符:[]{};:

  • 对象由花括号括起来的逗号分割的成员构成,成员是字符串键和上文所述的由逗号分割的键值对组成

  • 数组是由方括号括起来的一组值构成

  • JSON可以是对象数组数字字符串或者三个字面值(false、null、true)中的一个。

  • 例如:

    [
    	{
    		"empno": 7369,
    		"ename": "李宁",
    		"job": "软件工程师",
    		"hiredate": "2017-05-12",
    		"salary": 13000,
    		"dname": "研发部"
    	},
    	{
    		"empno": 7499,
    		"ename": "王乐",
    		"job": "客户经理",
    		"hiredate": "2017-04-22",
    		"salary": 10000,
    		"dname": "市场部",
    		"customers": [
    			{
    				"cname": "李东"
    			},
    			{
    				"cname": "刘楠"
    			}
    		]
    	}
    ]
    
    	var json2 = {};
    	json2.class_name = "五年级五班";
    	json2.floor = "逸夫楼四层";
    	json2.teacher = "王义夫";
    

3.在javascript中JSON与字符串互相转化

  • JSON.parse()方法将字符串转换为JSON对象

        var str = "{\"class_name\":\"五年级四班\"}";
        var json = JSON.parse(str);
        console.log(str);
        console.log(json);
        document.write("班级:" + json.class_name);
    
  • JSON.stringify()方法将JSON对象转化为字符串

    	var json1 = {"class_name" : "五年级四班"};
    	var str1 = JSON.stringify(json1);
    	console.info(json1);
    	console.info(str1);
    

4.JSON与Java交互

  • Java的JSON工具包有FastJson、JackJson等

  • FastJson是阿里巴巴著名的JSON序列化和反序列化工具包

  • FastJson拥有大量使用者,API简单,效率高

  • FastJson序列化和反序列化与JSON注解

    FastJSON中提供了JSON对象,用于完成普通对象与JSON字符串的互相转换

    单个对象

    • 序列化(普通对象变成JSON字符串)

          Employee employee = new Employee();
          String json = JSON.toJSONString(employee);
      
    • 反序列化(JSON字符串变成普通对象)

      	Employee emp = JSON.parseObject(json, Employee.class);
      

    对象集合

    • 序列化(集合变成JSON数组)

          List emplist = new ArrayList();
          String json = JSON.toJSONString(emplist);
      
    • 反序列化(JSON数组变成集合)

          List<Employee> emps = JSON.parseArray(json , Employee.class);
          for(Employee e : emps) {
          System.out.println(e.getEmpno() + ":" + e.getEname());
          }
      

    注意,这里的json数组本质是字符串

    Ajax是Java与JavaScript的一种通信方式,通常Java处理数据后返回JSON字符串,

    JavaScript利用JSON.parse()将它转化为JSON对象,可以对对象的属性进行操作输出

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值