JSON数据格式
来源:互联网 发布:淘宝能卖中药吗 编辑:程序博客网 时间:2024/06/14 20:07
前言
作为一个前端需要掌握一种数据格式:json数据格式。在和服务器交互时,服务器会返回一组json数据,前端需要处理这组数据,并选择性地将所需数据呈现在客户端。在json还没诞生前,互联网上传输结构化数据的方式是交给XML来完成的,那时候不少人认为XML过于繁琐、冗长,希望能有另一种数据格式可以替代XML。
什么是JSON
一句话:JSON就是(JavaScript Object Notation),它是一种轻量级的数据交换格式。
以下的语句就是JSON
{ "name":"bingkingboy", "age":25 }{ "first":{ "name":"bingkingboy", "age":25 }, "second":{ "name":"feifei", "age":20 }}
工欲善其事必先利其器,要想了解JSON就必须知道它的语法,才能更好的学习它。
JSON的基本语法
JSON的四个基本规则:
- 并列的数据之间用逗号(“, “)分隔。
- 映射用冒号(“: “)表示。
- 并列数据的集合(数组)用方括号(“[]”)表示。
- 映射的集合(对象)用大括号(“{}”)表示。
知道了JSON的基本规则,就可以很容易的构建JSON数据格式
解析和序列化
JSON之所以流行,拥有与JavaScript类似的语法并不是全部原因,更重要的一个原因是,可以把JSON数据结构解析为有用的JavaScript对象。
JavaScript解析和序列化JSON的方法
evel()
早期的JSON解析器上基本就是使用JavaScript的evel()的函数,不过在使用evel()对JSON数据结构求值存在风险,因为可能会执行一些恶意代码,使用时需谨慎。stringify() 把JavaScript对象序列化为JSON字符串
JSON.stringify()除了要序列化的JavaScript对象外,还可以接收另外两个可选参数,这两个参数用于指定以不同方式序列化JavaScript对象。第一个参数是个过滤器,可以是数组,也可以是函数;第二个参数是一个选项,表示是否在JSON字符串中保留缩进。
var book = { "title":"woaiwojia", "authors":["weiwei","kuakua"], "year":2010 } var jsonText1 = JSON.stringify(book); var jsonText2 = JSON.stringify(book,["title","year"]); console.log(jsonText1); console.log(jsonText2); {"title":"woaiwojia","authors":["weiwei","kuakua"],"year":2010} test5.html:17 {"title":"woaiwojia","year":2010}
- parse()
把JSON字符串解析为原生JavaScript值,JSON.parse()方法和JSON.stringify()刚好相反,不做举例。
JSON的优劣
优点:
- 格式比较简单,易于读写,格式都是压缩的,占用带宽小。
- 支持多种语言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Prel,
PHP, Python, Ruby等服务器端语言,便于服务器端的解析。
缺点:
- 要求字符集必须是Unicode,受约束性强。
- 语法过于严谨,必须遵守JSON语法的四个基本法则。
- json数据格式
- Json数据格式
- json数据格式
- JSON数据格式
- JSON数据格式
- JSON数据格式
- JSON数据格式
- JSON数据格式
- JSON数据格式
- Json 数据格式
- JSON数据格式
- JSON 数据格式
- Json数据格式
- JSON数据格式
- json数据格式
- JSON 数据格式
- JSON 数据格式
- JSON 数据格式
- 21.野指针和const关键字
- Android App Widget
- 【SDUTOJ 2414】An interesting game(最小费用最大流)
- 【Redis源码剖析】 - Redis内置数据结构之双向链表list
- 手写服务器httpserver_封装分发器_多请求处理_多态_反射JAVA202-204
- JSON数据格式
- 反锐化掩没处理方法
- 线段树的学习
- 胶
- 47. Permutations II
- [BZOJ2761] 不重复数字
- Problem A
- 使用GitHub Pages + Hexo 快速搭建个性化博客(三)-更换博客主题
- 快速排序