认识JSON

来源:互联网 发布:巴黎住宿攻略 知乎 编辑:程序博客网 时间:2024/05/29 23:23
  • JSON有两种表示结构,对象和数组。
    对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”键值”对构成,键和值之间以”:”分隔,语法结构如代码。
{    key1:value1,    key2:value2,    ...}

其中键必须是字符串,而值可以是字符串,数值,true,false,null,对象或数组

数组结构以”[”开始,”]”结束。中间由0或多个以”,”分隔的值列表组成,语法结构如代码。

[    {        key1:value1,        key2:value2     },    {         key3:value3,         key4:value4       }]

ps:json字符串必须是双引号而不能是单引号,json对象的对象的属性必须加双引号。

  • 区分字符串,json字符串,json对象
    字符串:这个很好解释,指使用“”双引号或’’单引号包括的字符。
    json字符串:指的是符合json格式要求的js字符串。
    json对象:指符合json格式要求的js对象。
  • json数据的解析和序列化
    全局对象JSON有两个方法:stringify( ),parse( )。
    stringify用于将JavaScript对象序列化为json字符串,而parse用于将json字符串解析为JavaScript值。

  • 序列化选项
    1.过滤结果:对js对象中信息进行筛选只保留有用的信息

var book = {   "title":"hfvj,xdv",   edition:3,   year:2017}var jsontext = JSON.stringify(book,["title","edition"]);//在函数的第二个参数传入一个包含对象属性的数组,在结果字符串中,只有数组中存在的属性才会被序列化。
var book = {   "title":"hfvj,xdv",   edition:3,   year:2017}var jsontext = JSON.stringify(book,function(key,value){  switch(key){       case "edition": return 5;       case "year": return 1998;       default: return undefined;  }});//在函数的第二个参数又传入了一个包含两个参数的函数,用于改变序列化对象的结果。

2.字符串缩进: stringify函数的第三个参数可以是数字或字符串,表示每个级别缩进的空格数或缩进符。

  • 解析选项
    在将json字符串解析为js对象时,根据需要,改变js对象中的某些属性。如下代码:
var book = {     "title":"hfvj,xdv",     edition:3,     year:2017}var jsontext = JSON.stringify(book);var bookcopy = JSON.parse(jsontext,function(key,value){if(key=="year"){  return undefined;}else{return values;}})//在函数parse的第二个参数传入一个还原函数,用于修改对象的属性。
原创粉丝点击