你不知道的JSON.stringify和JSON.parse
json是JavaScript 对象表示法(JavaScript Object Notation),是一种简单的数据格式,类似于XML,其格式为名称/值对,数据用逗号隔开,名称必须用双引号括起来。例如:{"name":"wumomo",age:25}
关于需要注意的几点:
1、名称必须用双引号括起来
2、最后一个值后不能加逗号
3、值可以为数字,字符串,对象,数组,Boolean值(true/false),null;不能是函数,undefined或者NaN
json和javascript对象格式有点相似,但是它们也是有很大区别的,同时相互之间可以进行转化。
区别 | json | javascript对象 |
含义 | 一种数据格式 | 类的实例 |
传输 | 可以跨平台数据传输,速度快 | 不能传输 |
名称/key | 名称必须用双引号括起来 | 名称可以不加双引号 |
属性值 | 最后的值后不能加逗号,值不能是函数/undefined/NaN | 可加逗号,可为任意值 |
json转为js对象 ------ JSON.parse(str)
js对象转为json ------ JSON.stringify(obj)
在这之前的项目开发中只接触和使用了JSON.parse()和 JSON.stringify()方法的第一个参数,然后也没有去深究,在一次偶然的机会,看到了其他的参数,才知道原来还可以这样。
JSON.parse(text[, reviver])
text ------- 必选,要被解析成JavaScript值的字符串
reviver函数:function(key,value) ------ 可选,解析值本身以及它所包含的所有属性,会按照一定的顺序(从内到外)分别的去调用 reviver
函数,如果 reviver
返回 undefined
,则当前属性会从所属对象中删除,如果返回了其他值,则返回的值会成为当前属性新的属性值。当遍历到最顶层的值(解析值)时,传入 reviver
函数的参数key为"",value为修改过的解析值。
例如:
JSON.stringify(value[,replace [, space]])
value ------ 必选, 将要序列化成 一个JSON 字符串的值
replacer ------ 可选,过滤函数或者数组,如果该参数为null或者未提供,则对象所有的属性都会被序列化;参数为数组时,只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中,同时转换顺序与在数组中的顺序一样。
space ------ 可选,指定缩进用的空白字符串,用于美化输出,如果是数字,就代表多少个空格,若值小于1,就相当于没有空格;如果是字符串(最多前10个字符),就取字符串代替空格
例如:
toJSON方法
如果一个被序列化的对象拥有 toJSON
方法,那么该 toJSON
方法就会覆盖该对象默认的序列化行为
你不知道的JSON.stringify和JSON.parse的更多相关文章
- JSON.stringify()和JOSN.parse()
JSON.stringify()跟JSON.parse() 终于把这两个方法搞清楚了!!! JSON.tringify():把一个json数据转化成JSON string JSON.stringify ...
- JSON 解析器。JSON.stringify和JSON.parse
以前用的是JavaScript 的eval. 现在JSON 提供了JSON.stringify和JSON.parse两个函数. JSON.parse用于从一个字符串中解析出json对象. JSON. ...
- json.stringify()的妙用,json.stringify()与json.parse()的区别
一.JSON.stringify()与JSON.parse()的区别 最近做项目,发现JSON.stringify()使用场景真的挺多,我们都知道JSON.stringify()的作用是将 JavaS ...
- ZH奶酪:JavaScript中的JSON.stringify() and JSON.parse()
JSON.stringify() JSON.stringify()可以将任意的JavaScript值序列化成JSON字符串. 语法 JSON.stringify(value[, replacer [, ...
- 关于JSON.stringify()与JSON.parse()
一.JSON.stringify()与JSON.parse()的区别 JSON.stringify()的作用是将js值转换成JSON字符串,而JSON.parse()是将JSON字符串转换成一个对象. ...
- JSON.stringify()与JSON.parse()
JSON.stringify()用于把一个对象解析成字符串,如 var student = { age: 23, name: 'wang' } JSON.stringify(student); 结果: ...
- JSON.stringify()和JSON.parse()
parse用于从一个字符串中解析出json对象,如 var str = '{"name":"huangxiaojian","age":&qu ...
- 日常积累之JSON.stringify和JSON.parse substr
1.substr(start,len) 从字符串中读取内容,第一个参数是读取的首位置,如果为负数,则从末尾倒数计数. 第二个参数是要读取的长度. eg: var str = "silence ...
- JSON.stringify()、JSON.parse()和eval(string)
1.JSON.stringify()用于从一个对象解析出字符串,eg: var obj = {"name":"奔跑的蜗牛","age":&q ...
随机推荐
- Python爬虫(二十)_动态爬取影评信息
本案例介绍从JavaScript中采集加载的数据.更多内容请参考:Python学习指南 #-*- coding:utf-8 -*- import requests import re import t ...
- svn协同开发下的dll版本管理最佳实践
作为一名开发人员,常常碰到的一个问题是,当使用svn签出一份最新代码时,经常不能一次编译通过,导致花费大量时间去解决编译问题,这里碰到的问题一般可以分为三类: 1. 由于提交代码的开发人员失误,忘记提 ...
- intellij idea的安装步骤---经典
安装IntelliJ IDEA 一.安装JDK 1 下载最新的jdk,这里下的是jdk-8u66 2 将jdk安装到默认的路径C:\Program Files\Java目录下 二.安装IntelliJ ...
- github上搜索资源
1.进入官网 点击Explore 2.点击Trending 3.资源都在这上面,可以根据语言分类 4.搜索链接 https://github.com/trending
- 企业级nosql数据库应用与实战-redis
一.NoSQL简介 1.1 常见的优化思路和方向 1.1.1 MySQL主从读写分离 由于数据库的写入压力增加,Memcached只能缓解数据库的读取压力.读写集中在一个数据库上让数据库不堪重负,大部 ...
- springboot整合mq接收消息队列
继上篇springboot整合mq发送消息队列 本篇主要在上篇基础上进行activiemq消息队列的接收springboot整合mq发送消息队列 第一步:新建marven项目,配置pom文件 < ...
- 《代码大全(第二版)》【PDF】下载
<代码大全(第二版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382264 内容简介 <代码大全(第2版)>是著 ...
- ES6异步操作Thunk、co和async
使用Thunk函数对Generator函数进行流程管理,首先什么是Thunk函数?我们应该先说下参数的求值策略,编译器的求值策略一个是"传值调用"另一个是"传名调用&qu ...
- iOS 蓝牙开发资料记录
一.蓝牙基础认识: 1.iOS蓝牙开发: iOS蓝牙开发:蓝牙连接和数据读写 iOS蓝牙后台运行 iOS关于app连接已配对设备的问题(ancs协议的锅) iOS蓝牙空中 ...
- jsDOM编程-乌龟抓小鸡游戏
<html> <head> <title>js乌龟抓小鸡游戏 </title> <meta http-equiv="conten ...