1. 简介

Json (JavaScript Object Notation) - JavaScript对象表示法
之前我们应该都对XML有一定的认识,XML是一种 数据存储以及交换的方式,但是在实际开发中,我们现在更加多的是使用Ajax配合Json使用,为什么不使用XML,这是因为Json比XML更快,更容易解析,在XML中需要读取到文档后,用DOM遍历文档并且存储进变量,而Json则简便很多,下面你认识Json就能深刻的感觉到

2. 语法

json数据是由键值对构成的

  • 键用引号(单双都可以)引起来,也可以不使用引号
  • 值的类型
    • 数字:整数或者浮点数
    • 字符串
    • 逻辑值
    • 数组:使用方括号 {“persons”:[{},{}]}
    • 对象:使用花括号 {“address”:{“province”:”北京”….}}
    • null
  • 数据之间用逗号隔开

    3. 获取数据

  • json对象.键名

  • json对象[“键名”]
  • 数组对象[索引] ```javascript // 1.定义基本格式 var person = {“name”: “张三”, age: 20, ‘gender’: true};

var ps = [{“name”: “张三”, “age”: 20 “gender”: true}, {“name”: “李四”, “age”: 22 “gender”: true}, {“name”: “王五”, “age”: 22 “gender”: false}];

// 获取ps中的所有值 for (var i = 0; i < ps.length; i++) { var p = ps[i]; for(var key in p){ alert(key+”:”+p[key]); } } ```

4. Json解析器

这就是为了实现Json数据和Java对象的相互转换
常见的解析器:Jsonlib,Gson,fastjson,jackson(以此为例学习)

4.1 转换通用流程

  • 导入jackson的相关jar包
  • 创建Jackson核心对象 ObjectMapper
  • 调用ObjectMapper的相关方法进行转换

    4.2 Json转为Java对象

  • readValue(json字符串数据,Class)

    4.3 Java对象转换Json

  • writeValue(参数1,obj)

    • 参数1:
      • File:将obj对象转换为JSON字符串,并保存到指定的文件中
      • Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
      • OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流
  • writeValueAsString(obj):将对象转为json字符串