JSON

简介: JSON

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。


轻量级:相比于同样被广泛使用的数据交换格式xml要少很多标签


  • 什么是数据交换?

以前端JS进行ajax的POST请求为例,后端PHP处理请求为例:

  1. 前端构造一个JS对象,用于包装要传递的数据,然后将JS对象转化为JSON字符串,再发送请求到后端;
  2. 后端PHP接收到这个JSON字符串,将JSON字符串转化为PHP对象,然后处理请求。
  • JSON 文件的文件类型是 “.json”
  • JSON 文本的 MIME 类型是 “application/json”

相对于JS对象,JSON的格式更严格

对比内容 JSON JS对象
键名 必须是加双引号 可允许不加、加单引号、加双引号
属性值 只能是数值(10进制)、字符串(双引号)、布尔值和null,也可以是数组或者符合JSON要求的对象,不能是函数、NaN, Infinity, -Infinity和undefined 没限制
逗号问题 最后一个属性后面不能有逗号 可以
数值 前导0不能用,小数点后必须有数字 没限制


应用

JavaScript对象 (转换为)→ JSON字符串

JSON.stringify()

示例:

let b=[1,2]
JSON.stringify(b)  // "[1,2]"

JSON字符串 (解析为)→ JavaScript对象

JSON.parse()

示例:

JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]

原理

JavaScript 程序会使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。


如果一个JS对象上实现了toJSON方法,那么调用JSON.stringify去序列化这个JS对象时,

JSON.stringify会把这个对象的toJSON方法返回的值作为参数去进行序列化。

var info={
    "msg":"I Love You",
    "toJSON":function(){
        var replaceMsg=new Object();
        replaceMsg["msg"]="Go Die";
        return replaceMsg;
    }
};

JSON.stringify(info);
//出si了,返回的是:'"{"msg":"Go Die"}"',说好的忽略函数呢

Date类型可以直接传给JSON.stringify做参数,其中的道理就是,Date类型内置了toJSON方法。

目录
相关文章
|
2月前
|
JSON 前端开发 JavaScript
JSON 必知必会
JSON 必知必会
N..
|
2月前
|
存储 JSON 前端开发
JSON
JSON
N..
25 1
|
2月前
|
存储 JSON JavaScript
JSON应用
JSON应用
37 4
|
11月前
|
JSON Java 数据格式
处理json 和HttpMessageConverterT
处理json 和HttpMessageConverterT
59 0
|
7月前
|
JSON 前端开发 JavaScript
JSON小技巧
JSON小技巧
30 0
|
XML JSON JavaScript
json
json
56 0
|
JSON 数据格式
json的一些小理解
个人学习总结
65 0
|
存储 JSON JavaScript
JSON介绍
JSON介绍
185 0
|
XML Web App开发 JSON
JSON 简单了解
JSON 简单了解
197 0
JSON 简单了解
|
XML 存储 JSON
JSON使用总结
JSON: JavaScript Object Notation(JavaScript 对象表示法) JSON 是存储和交换文本信息的语法,类似 XML。
141 0