概述

JSON.stringify() 方法可以将任意的 JavaScript 值序列化成 JSON 字符串。

语法

JSON.stringify(value[, replacer [, space]])

参数

value
将要序列化成 JSON 字符串的值。
replacer 可选
如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理;如果该参数是一个数组,则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中。关于该参数更详细的解释和示例,请参考使用原生的 JSON 对象一文。
space 可选
指定缩进用的空白字符串,用于美化输出(pretty-print)。

具体可以参考 MDN:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

一、通常情况下,我们只使用如下代码进行简单的 JSON 字符串化:

var JSONobj = {"name" : "value","arr" : ['str1','str2']};
console.log(JSON.stringify(JSONobj));
//结果为{"name":"value","arr":["str1","str2"]} 

二、实际上,第二个参数也有很重要的用途,比如对对象内的key-value 依次进行处理后转换为字符串:

var JSONobj = {"name" : "value","name2":"value2","arr" : ['str1','str2',{'arrObj' : 'arrObj'}]};
JSON.stringify(JSONobj,function(key,value){
console.log(key,value)
});
//结果为:JSONobj对象(value值),key无值

三、当需要展示的 json 串对用户友好,增加可读性时,可以使用第三个参数:

var JSONobj = {"name" : "value","arr" : ['str1','str2',{'arrObj' : 'arrObj'}]};
JSON.stringify(JSONobj, null, '\t');
/* "{
"name": "value",
"arr": [
"str1",
"str2",
{
"arrObj": "arrObj"
}
]
}" */

实际上以上结果经过了两次处理:

1. 为每一个 ‘{’、‘}’、value 后的‘,’ 末尾添加一个\n

2. 为每一个一级 key 前面添加一个\t (tab制表符,即本例中第三个参数值),二级 key 前面加两个\t,以此类推。

为了更清晰的验证以上两点,进行如下测试:

var JSONobj = {"name" : "value","arr" : ['str1','str2',{'arrObj' : 'arrObj'}]};
JSON.stringify(JSONobj, null, '\t').replace(/\n/g,'|--N--|').replace(/\t/g,'|--T--|');
//结果为"{|--N--||--T--|"name": "value",|--N--||--T--|"arr": [|--N--||--T--||--T--|"str1",|--N--||--T--||--T--|"str2",|--N--||--T--||--T--|{|--N--||--T--||--T--||--T--|"arrObj": "arrObj"|--N--||--T--||--T--|}|--N--||--T--|]|--N--|}"

JSON.stringify()的更多相关文章

  1. 有意思的JSON.parse()、JSON.stringify()

    前言 现在JSON格式在web开发中非常重要,特别是在使用ajax开发项目的过程中,经常需要将后端响应的JSON格式的字符串返回到前端,前端解析成JS对象值(JSON 对象),再对页面进行渲染. 在数 ...

  2. JSON.parse()和JSON.stringify()(转载)

    parse用于从一个字符串中解析出json对象,如 var str = '{"name":"huangxiaojian","age":&qu ...

  3. 关于对JSON.parse()与JSON.stringify()的理解

    JSON.parse()与JSON.stringify()的区别   JSON.parse()[从一个字符串中解析出json对象] 例子: //定义一个字符串 var data='{"nam ...

  4. JSON之—— JSON.parse()和JSON.stringify() (插曲)

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46391269 parse用于从一个字符串中解析出json对象,如 var str ...

  5. Python模块:shutil、序列化(json&pickle&shelve)、xml

    shutil模块: 高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fscr,fdst [, length])   # 将文件内容拷贝到另一个文件中 import shu ...

  6. qs.parse()、qs.stringify()、JSON.parse()、JSON.stringify()使用方法

    一.JSON.parse(用于从一个字符串中解析出json 对象)ps:单引号写在{}外,每个属性都必须双引号,否则会抛出异常 let str = '[{"field":" ...

  7. 前端js传值JSON.stringify(obj)

    用bootstrap-talbe前端传值 首先直接传肯定是不行的; 其次做一个全局变量也不行,因为这里的问题的是用bootstrap-table进行生成的操作HTML,从这里datass = row ...

  8. JSON相关(一):JSON.parse()和JSON.stringify()

    parse用于从一个字符串中解析出json对象,如 var str = '{"name":"huangxiaojian","age":&qu ...

  9. JSON.stringify语法解析(自己留存)

    语法: JSON.stringify(value [, replacer] [, space]) value:是必选字段.就是你输入的对象,比如数组,类等. replacer:这个是可选的.它又分为2 ...

随机推荐

  1. Kali 2016.2版本安装vmtools实现本机与虚拟机文件复制

    Kali官方下载:http://cdimage.kali.org/kali-2016.2/kali-linux-2016.2-amd64.iso VM12 Pro下载:https://mega.nz/ ...

  2. 多边形裁剪的Sutherland-Hodgman算法

    多边形裁剪是渲染管线中重要的一个子阶段,它将视截体外的多边形去除.一种简单的裁剪策略是一旦发现一个顶点在裁剪区域以外,就立刻丢弃该多边形.更加精细的做法则是,将原来的多边形拆为多个不跨越边界的多边形, ...

  3. C# 构造post参数一种看起来直观点的方法[转]

    因为本人经常爱用C#做一些爬虫类的小东西,每次构造post参数的时候,都是直接字符串拼接的方式的,有时候改起来不太方便. 场景: 需要post一个地址 参数列表 : username:管理员 pass ...

  4. AVAudioPlayer播放本地音频

    AVAudioPlayer苹果官方上说一般用于播放本地音频,不能用于播放网络上的音频. 具体的代码:先导入 #import <AVFoundation/AVFoundation.h> // ...

  5. id to load is required for loading

    id一般作为主键,不为空.springmvc hibernate 框架中根据参数ids执行批量删除的方法时报错,ids是id主键的数组集合.去搜了下,原因别的博客说了,是id为空引起的.实际上id不为 ...

  6. Mac使用最多的软件,整理集合

    软件资源 #[PDF移除密码]Cisdem PDFPasswordRemover 3.0.0 [TNT] #Alfred_3.1.1_737 #fwmso2016vlu2.0 #iHosts #Omn ...

  7. SpringMVC操作指南-登录功能与请求过滤

    [1] Source http://code.taobao.org/p/LearningJavaEE/src/LearningSpringMVC005%20-%20Login%20and%20Filt ...

  8. Error : should use android:showAsAction when not using support library

    我有一个ListActivity,然后一个menu/options.xml android:showAsAction报错: should use android:showAsAction when n ...

  9. 常用prototype函数

    $("spcode").value --取得当前页面的值的value,可以赋值 $F('spcode')         --不能赋值 $!spcode             - ...

  10. python-study1 in hubei

    1.安装好python后要配置环境变量(C:\Python27\Scripts---能找到pip.exe和easy_install.exe和C:\Python27---能找到python.exe) 2 ...