标签:style blog http io ar color 使用 sp java
JSON.stringify()
方法可以将任意的 JavaScript 值序列化成 JSON 字符串。
JSON.stringify(value[, replacer [, space]])
value
replacer
可选space
可选具体可以参考 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--|}"
标签:style blog http io ar color 使用 sp java
原文地址:http://www.cnblogs.com/zldream1106/p/JSON_stringify.html