JSON

一、语法

JSON的语法可以表示以下三种类型的值

  • 简单值:字符串,数值,布尔值,null,但是不可以表示undefinded
  • 对象
  • 数组

1.1、简单值

JSON必须使用双引号,末尾没有分号

5
"hello world"

1.2、对象

1.3、数组

二、解析与序列化

2.1、JSON对象

stringify():javascript对象序列化为json字符串
在这里插入图片描述
parse():将json字符串解析为原生的javascript对象
在这里插入图片描述

2.2、序列化选项

JSON。stringify()除了要序列化javascript对象外,还可以接收另外两个参数,这两个参数用于指定以不同的方式序列化Javascript对象。第一个参数是个过滤器,可以是一个数组,也可以是一个函数;第二个参数是一个选中项,表示是否在JSON字符串中保留缩进

2.2.1、过滤结果

第二个参数是数组

JSON.stringify(book,["book","edition"])

在这里插入图片描述第二个参数是函数

 var book={        
 title:"Professional Javascript",        
 author:[            
 "Nicholas C,Zakas"        
 ],        
 edition:3,        
 year:2011    
 }    
 var jsonText=JSON.stringify(book,function(key,value){        
 switch(key){            
 case "author":            
 return value.join(",")            
 case "year":            
 return 5000            
 case "edition":            
 return undefined            
 default:            
 return value        
 }    
 })    
 console.log(jsonText)

在这里插入图片描述

2.2.2、字符串缩进

最大数字为10

 var book={        
 title:"Professional Javascript",       
  author:[            
  "Nicholas C,Zakas"        
  ],        
  edition:3,        y
  ear:2011   
   }    
   var jsonText=JSON.stringify(book,null,10)    
   console.log(jsonText)

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200531085038628.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNzcwOTg4,size_16,color_FFFFFF,t_70

2.2.3、toJSON()方法

有时候,JSONString不能满足对某些对象进行自定义序列化的需求,就可以使用toJSON方法,返回自生的JSON数据格式

 var date=new Date();    
 console.log(date)    c
 onsole.log(date.toJSON())    
 console.log(date.toISOString())

在这里插入图片描述

 var book={        
 title:"Professional Javascript",        
 author:[            
 "Nicholas C,Zakas"        
 ],        
edition:3,        
year:2011,        
toJSON:function(){            
return this.title        
}    
}    
var jsonText=JSON.stringify(book)    
console.log(jsonText)

在这里插入图片描述
序列化顺序

  1. toJSON()
  2. 对第一步的结果使用函数过滤器
  3. 如果提供第三个参数,进行格式化

2.3、解析选项

JSON.parse()也可以接受另一个参数,该参数是一个函数,用于每个键值对儿的调用,称为还原函数
如果还原函数返回undefined,则表示要从结果中删除相应的值,如果返回其他值,则将该值插入到结果中

 var book={        
 title:"Professional Javascript",        
 author:[            
 "Nicholas C,Zakas"        
 ],        
 edition:3,        
 year:2011,        
 releaseDate:new Date(2011,11,1)    
 }    
 var jsonText=JSON.stringify(book)    
 var bookCody=JSON.parse(jsonText,function(key,value){        
 if(key=="releaseDate"){           
  return new Date(value)        
  }else{            
  return value        
  }    
  })    
  console.log(jsonText)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值