SpringMVC:四JSON

Posted Jaywee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC:四JSON相关的知识,希望对你有一定的参考价值。

7、JSON

JSONjavascript Object Notation):JavaScript 对象标记。

7.1、简介

什么是 JSON

  • 是轻量级的文本数据交换格式;
  • 独立于编程语言;
  • 使用 JavaScript 语法来描述数据对象(使用文本表示 JS 对象);
  • 具有自我描述性,易于理解。

7.2、JSON vs XML

JSONXML 都用于接收 web 服务端的数据。

7.2.1、对比

相同点

  • 具有自我描述性;
  • 具有层级结构;
  • 可以被大多数编程语言使用;
  • 可通过 JavaScript 解析;
  • 可使用 AJAX 传输;

不同点

  • JSON 不需要结束标签;
  • JSON 更加简短;
  • JSON 读写速度更快;
  • JSON 可以使用数组;

7.2.2、JSON优于XML

  • XMLJSON 更难解析;

  • JSON 可以使用 JavaScript 对象解析;

  • 对于 AJAX 来说,JSONXML 数据加载更快、更简单;

  • 使用 XML

    • 获取 XML 文档;
    • 使用 XML DOM 来循环遍历文档;
    • 将数据解析并存储在变量中;
  • 使用 JSON

    • 获取 JSON 字符串;
    • 解析 JSON 字符串;

7.3、语法

JSON 语法是 JavaScript 语法的子集。

7.3.1、JSON语法规则

  • 数据用 K-V 键值对表示;
  • 数据之间用逗号分隔;
  • 大括号{}保存对象;
  • 中括号[]保存数组。
{
    "name" : "jaywee",
    "age"  : "17",
    "hobby": ["java","music","basketball"]
}

7.3.2、JSON数据类型

JSON 值可以是:

  • 数字:整数或浮点数;
  • 字符串:写在双引号中;
  • 逻辑值:truefalse
  • 对象:写在大括号{}中;
  • 数组:写在中括号[]中;
  • 空值:null

7.3.3、JSON对象

用大括号{}表示 JSON 对象,JSON 对象可以包含多个 K-V 键值对。

  • Key 必须是字符串,Value 可以是合法的 JSON 数据类型(数字, 字符串, 布尔值, 对象, 数组或 null);
  • KeyValue 中使用冒号:分割;
  • 多个 K-V 键值对之间使用逗号,分割。

访问 JSON 对象属性

通过点号.或中括号[]访问 JSON 对象,可以进行以下操作;

  • 获取、修改属性值;
  • 使用 delete 关键字删除属性。
var person = {
    "name" : "jaywee",
    "age"  : "17",
    "hobby": ["java","music","basketball"]
}

var obj1 = person.name;
var obj2 = person["name"];

person.age = 10;
person["age"] = 10;

delete person.hobby;
delete person[hobby];

7.3.4、JSON数组

用中括号[]表示 JSON 数组。

  • 数组值必须是合法的 JSON 数据类型(数字, 字符串, 布尔值, 对象, 数组或 null);
  • 多个数组值之间使用逗号,分割。

访问 JSON 数组值

通过索引值(下标从0开始)访问数组,可以进行以下操作;

  • 获取、修改属性值;
  • 使用 delete 关键字删除属性。
var person = {
    "name" : "jaywee",
    "age"  : "17",
    "hobby": ["java","music","basketball"]
}

var obj = person.hobby[0];

person.hobby[0] = "spring";

delete person.hobby[0];

7.3.5、JSON文件

  • JSON 文件的 文件 类型:.json
  • JSON 文本的 MIME 类型:application/json

7.4、JSON和JS对象转换

JSON 通常用于与服务端交换数据。

  • 从服务器接收数据:将 JSON 字符串解析为 JavaScript 对象;
  • 向服务器发送数据:将 JavaScript 对象 转换为 JSON 字符串。

7.4.1、parse

使用 JSON.parse() 方法将 JSON 字符串转换为 JavaScript 对象:即字符串 → 对象。

JSON解析实例

  • 假设从服务器接收到以下数据

    { "name":"jaywee", "age":"17" }
    
  • 使用 JSON.parse() 方法解析数据,将其转化为 JavaScript 对象

    var obj = JSON.parse(\'{ "name":"jaywee", "age":"17" }\');
    

7.4.2、stringify

使用 JSON.stringify() 方法将 JavaScript 对象转换为 JSON 字符串:即对象→ 字符串。

JSON对象转换实例

  • 假设要向服务器发送以下数据

    var obj = { "name":"jaywee", "age":"17" }
    
  • 使用 JSON.parse() 方法解析数据,将其转化为 JavaScript 对象

    var myJson = JSON.stringify(obj);
    

7.5、测试

  • 编写一个 JS 对象

    let person = {
        "name": "jaywee",
        "age": 17,
        "hobby": ["java", "music", "basketball"]
    }
    console.log(person)
    

  • JS 对象转换为 JSON 字符串

    let myJson = JSON.stringify(person)
    console.log(myJson)
    

  • JSON 字符串转换为 JS 对象

    let obj = JSON.parse(myJson)
    console.log(obj)
    

以上是关于SpringMVC:四JSON的主要内容,如果未能解决你的问题,请参考以下文章

SpringMVC 返回 json 字符串中文乱码

springMVC绑定json参数之二(2.2.3)

Spring MVC 教程

Spring注解处理Ajax请求-JSON格式[系统架构:Spring+SpringMVC+MyBatis+MySql]

json 个人的vscode的代码片段

springmvc怎么返回json数据报406