JSON简介

  • JSON: JavaScript Object Notation(JavaScript 对象表示法);轻量级数据交换格式、非常适合于服务器与 JavaScript 的交互。
  • JSON就是不同系统之间、前后端之间、不同语言之间进行数据交互所遵守的一种数据的格式。

    JSON语法

    1、JSON语法规则

    JSON 语法是 JavaScript 对象表示法语法的子集。

  • 数据在键/值对中

  • 数据由逗号分隔
  • 大括号保存对象
  • 中括号保存数组

json格式:

  • 对象和Map 转换成 {key:value , key:value,...}
  • 数组和集合转换成[e1,e2,e3,...]
  • JSON格式可以嵌套

    2、JSON 键/值对

    JSON 数据的书写格式是:键/值对。
    键/值对:包括字段名称(在双引号中),后面写一个冒号,然后是值:
    {“name” : “value-ityg”}
    这很容易理解,等价于这条 JavaScript 语句:
    name = “value-ityg”

    2、JSON 值

    JSON 的值可以是:

  • 数字(整数或浮点数)

  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在中括号中)
  • 对象(在大括号中)
  • null

在javascript语言中怎么创建一个json对象呢?语法是什么?
var jsonObj = {
“属性名1” : 属性值,
“属性名2” : 属性值,
“属性名3” : 属性值,
};
注意:属性名必须是字符串

JSON格式转换

前端JS对象与JSON格式转换

  • JS对象转换成JSON格式字符串
    1. //创建JS对象
    2. var obj = {stuNum:"10001",stuName:"张三"};
    3. obj.stuGender = "男";
    4. //将JS对象转换成json格式字符串
    5. var jsonStr = JSON.stringify(obj);
  • 将JSON格式字符串转换成JS对象

    1. //方式一:注意这个方法需要在两边加上一个小括号
    2. var obj2 = eval("("+jsonStr+")");
    3. //方式二
    4. var jsonObj = JSON.parse(jsonStr);

    后端Java对象与JSON格式转换

    需使用JSON工具:FASTJson、GSon 、JackSon

  • 使用FastJson: ```java //创建一个User对象 User libai = new User(“李白”, 10000, “喝酒”);

// 将以上的User对象转换成json格式的字符串 // 使用阿里巴巴的fastjson组件中的JSON类即可,调用toJSONString(Object obj)方式。 String jsonStr = JSON.toJSONString(libai);

// List集合是否可以转换成数组 ArrayList users = new ArrayList<>(); User hanxin = new User(“韩信”, 1434, “刷枪”); users.add(libai); users.add(hanxin); String jsonStr2 = JSON.toJSONString(users); //把获取的数据,通过网络传给ajax中的异步对象,响应结果数据 //指定服务器端(servlet)返回给浏览器的是json格式的数据,json数据使用utf-8编码的 response.setContentType(“application/json;charset=utf-8”); response.getWriter().println(jsonStr2);//输出数据—-会付给ajax中 responseText属性

  1. - 使用GSon
  2. ```java
  3. //要求:json格式的字符串中的key 要和目标Java对象属性一致
  4. Gson gson = new Gson();
  5. Student student = gson.fromJson(str, Student.class);
  1. Student stu2 = new Student("10006","Lucy","女");
  2. String jsonStr = gson.toJson(stu2);