JSON.stringify()

概述

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--|}"

 

转载于:https://www.cnblogs.com/zldream1106/p/JSON_stringify.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值