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的四个基本规则:

  1. 并列的数据之间用逗号(“, “)分隔。
  2. 映射用冒号(“: “)表示。
  3. 并列数据的集合(数组)用方括号(“[]”)表示。
  4. 映射的集合(对象)用大括号(“{}”)表示。

知道了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的优劣

优点:

  1. 格式比较简单,易于读写,格式都是压缩的,占用带宽小。
  2. 支持多种语言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Prel,
    PHP, Python, Ruby等服务器端语言,便于服务器端的解析。

缺点:

  1. 要求字符集必须是Unicode,受约束性强。
  2. 语法过于严谨,必须遵守JSON语法的四个基本法则。
0 0
原创粉丝点击