[javascript] JSON简介
可能有人看到这个标题就嘿嘿一笑,JSON我还不知道么!
虽然我们经常使用JSON,但是很多人还是容易混淆Javascript Object和JSON
JSON,是一种是一种轻量级的数据交换格式,他的全名是JavaScript Object Notation(JavaScript对象表示法),属于ES3标准的一个子集。
由于JSON的易用性,现在流行与各个领域出现了各种变体。在我们熟知的AJAX中,X所代表的XML基本已经被JSON代替。由于跨浏览器获取跨域数据JSONP也是非常好的一种解决方案。WEB开发中基本免不了要与JSON打交道。现实中很多人分不清楚什么是javascript object 什么是JSON。
1.JSON的格式非常严格,JSON与Object相比就想是html对xhtml。
一个标准的JSON数据
{ "a" : "1" } |
JSON数据只能是纯文本!键和值都必须用(" ")双引包裹,js的Object 键可以不用这样处理,值如果不是字符串可以不这样处理。
//注意这些都不是JSON<br>{'a':1} { 'a' : '1' } {a:1} |
2.既然JSON只能存储纯文本,对应js的就是字符串。那么我们要把js对象处理成为JSON的话怎么办呢。
其实每个JS的原生类都有(ES6 Function以添加)toString()这样的方法,能不能用么。复杂类型如果调用这个方法会返回自身的值
[1,2,3,4].toString(); //"1,2,3,4"({a:1}).toString(); //"[object Object]" |
使用这个会得到一个这样的结果,如果我们把他们存入cookie或者localStorage,再次取出对象化这显然不是正确结果。
JSON对象上有两个静态方法,parse stringify
parse:负责把JSON数据转为js对象
stringify:负责吧js对象字符串化
3.parse把字符串对象化有很多种选择 eval('('+data+')'), new Function('return '+data)();
鉴于安全性,推荐使用第二种方法
4. stringify把对象字符串化,目前还没有快速的方法,这个过程可以看做是[1,2,3,4] 给数组两边加双引。
5.JSON已被IE8所原生支持,低版本的浏览器也有解决方案。
https://github.com/douglascrockford/JSON-js/blob/master/json2.js
JSON之父,做的JSON扩展。JSON只能存储纯文本,局限性还是显而易见的。JSON的另一个变种BSON (Binary JSON),他支持JSON没有的一些数据类型,如Date和BinData类型,MongoDB使用他来存储数据和网络交换数据。
JSON校检:http://jsonlint.com/
JSON官网:http://json.org/json-zh.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!