json.stringify方法
关键词:
用过 json 的应该都知道,把一个对象通过 stringify 之后提交给后台或者存储在 Storage 里是很常用的手段。
但是 IE6-7 下没有 JSON 对象,所以要借助 json2.js 来实现。
今天我们来简单介绍下 stringify 方法的一些正确使用姿势吧。
当然,让高手们贱笑了,本文只是分享一些方法给新手朋友们。
var data = [
{name: "王尼玛", sex:1, age: 30},
{name: "王尼美", sex:0, age: 20},
{name: "王大锤", sex:1, age: 30}
];
var str_json = JSON.stringify(data);
console.log(str_json);
这个是我们日常用法,非常简单,对吧。
比如说,我们的数据非常复杂,还有类似头像,昵称,个人签名之类的信息。
可是我保存在本地,只需要用户名,和性别,肿么破呢?
也许你会说 so easy, 遍历数据重新提取下即可。
例如:
var data = [
{name: "王尼玛", sex:1, age: 30},
{name: "王尼美", sex:0, age: 20},
{name: "王大锤", sex:1, age: 30}
];
for (var i=0, new_data=[]; i<data.length; i++) {
new_data.push({
name: data[i].name,
sex: data[i].sex
});
}
var str_json = JSON.stringify(new_data);
console.log(str_json);
确实分分钟搞定。
其实我们只需要用 stringify 第二个参数即可简单处理这种问题。
var data = [
{name: "王尼玛", sex:1, age: 30},
{name: "王尼美", sex:0, age: 20},
{name: "王大锤", sex:1, age: 30}
];
var str_json = JSON.stringify(data, ["name", "sex"]);
console.log(str_json);
第二个参数只要传入需要的keys数组,就非常轻松的就完成这种处理了。
当然如果我们要更纠结的处理,比如要把 1,0 修改为男女,那么第二个参数可以用回调函数来处理。
var data = [
{name: "王尼玛", sex:1, age: 30},
{name: "王尼美", sex:0, age: 20},
{name: "王大锤", sex:1, age: 30}
];
var str_json = JSON.stringify(data, function (k, v) {
if (k === "sex") {
return ["女", "男"][v];
}
return v;
});
console.log(str_json);
第二个参数如此强悍,为我们省去了不少麻烦。
还有第三个参数,用于格式化字符串用的。
var data = [
{name: "王尼玛", sex:1, age: 30},
{name: "王尼美", sex:0, age: 20},
{name: "王大锤", sex:1, age: 30}
];
var str_json = JSON.stringify(data, null, "\t");
console.log(str_json);
str_json = JSON.stringify(data, ["name", "sex"], "\t");
console.log(str_json);
其实,我觉得这是个非常鸡肋的功能,,一般情况下却是没啥用。
好了,今天的分享就这些了,希望对新手朋友有所帮助。
参考资料:
JSON.stringify() - JavaScript | MDN
JSON in JavaScript
json.stringify(),json.parse(),tojson()方法使用
JSON.stringify():将value(Object,Array,String,Number...)序列化为JSON字符串JSON.parse():将JSON数据解析为js原生值toJSON(),作为JSON.stringify中第二个参数(函数过滤器)补充,理解内部顺序很重要。假设把一个对象传入JSON.stringify()序列化对象的顺序如... 查看详情
json.parse()和json.stringify()方法
...在{}外,每个属性名都必须用双引号,否则会抛出异常。stringify()用于从一个对象解析出字符串,如vara 查看详情
stringify字符串转化成json方法
参照原文:http://www.cnblogs.com/damonlan/http://www.jb51.net/article/29893.htm stringify的作用主要是序列化对象(转化为json对象)语法: JSON.stringify(value[,replacer][,space]) 1.value:必选,你输入的对象,比如数组,类等等。 2 查看详情
jq实现json.stringify(obj)方法
jQstringify是使用jQuery实现的JSON.stringify(obj)方法代码如下:<scripttype="text/javascript"src="http://keleyi.com/keleyi/pmedia/jquery/jquery-1.10.2.min.js"></script>functionjQstringify(obj){vararr=[]; 查看详情
解决json.stringify()自动将中文转译成unicode的方法
最近在工作中,发现在IE8下JSON.stringify()自动将中文转译为unicode编码,原本选择的中文字符,传到后台变为了unicode编码,即u****的形式。查找资料后发现,与标准的JSON.stringify()不同,IE8内置的JSON.stringify()会自动将编码从utf-8... 查看详情
json.stringify()/json.parse()
JSON.stringify()这个方法可以把javascript对象转换成json字符串。JSON.parse()这个方法可以把json字符串转换成javascript对象。【下面来看一下这两个方法的详细解答】json数据中没有变量和结尾的分号,并且数据必须是用双引号引起来的,... 查看详情
jsjson格式化打印:json.stringify方法(代码片段)
具体示例//代码console.log(JSON.stringify(x:5,y:6,null,2));//输出结果"x":5,"y":6JSON.stringify()介绍JSON.stringify()方法将一个JavaScript对象或值转换为JSON字符串,如果指定了一个replacer函数,则可以选择性地替换值,或者制定的replacer是数组,则... 查看详情
json.stringify 不处理对象方法
】json.stringify不处理对象方法【英文标题】:json.stringifydoesnotprocessobjectmethods【发布时间】:2013-08-0723:34:36【问题描述】:我正在尝试开发一个可以在大多数现代浏览器(Chrome、Firefox、IE9+、Safari、Opera)中运行的离线HTML5应用程... 查看详情
在nodejs中object的tostring()方法querystring的stringify()json.stringify()
刚学nodejs,做到一个例子:发送简单的HTTP请求。遇到一个问题,客户端给服务端发送的消息到服务端,服务端收不到消息,确切的说是“”。以下是服务端代码:server.jsconsthttp=require("http");constqs=require("querystring")http.createServer(funct... 查看详情
json序列化(stringify)对象时排除某些属性的两种方法
JavaScript的JSON对象本身就带有序列化和反序列化的函数,为parse和stringify,我们一般使用这两个函数将JSON对象持久化。如:varPersion={ username:"Kris", password:"1234567890"}alert(JSON.stringify(Persion)) &nb 查看详情
json.stringify()方法的原生js实现
...拼接。可直接在浏览器运行如下代码运行结果本文的JSON.stringify()方法的原生JS实现属于对javascript灵活应用的基本功。实现思路来自于笔者平日的工作与思考的总结。希望大家都能掌握以便在面试中脱颖而出。有需要前端学习资... 查看详情
json.parse和json.stringify参数详解
JSON.parse和JSON.stringify这两个浏览器自带(IE6/7除外)的方法平常我们经常用到,但是一般都只是用到了他们的第一个参数,比如字符串转对象:JSON.parse(‘{}‘) 对象转字符串:JSON.stringify({})今天特意看了下这两个方法的定义... 查看详情
Fabric.js:有啥方法可以在 JSON.stringify(canvas) 生成的 Json 中保存 url 而不是 svg 图像的路径?
】Fabric.js:有啥方法可以在JSON.stringify(canvas)生成的Json中保存url而不是svg图像的路径?【英文标题】:Farbic.js:IsthereanywaytosaveurlinsteadofpathsofsvgimageintheJsongeneratedbyJSON.stringify(canvas)?Fabric.js:有什么方法可以在JSON.stringify(canvas)生成的... 查看详情
js中json.stringify()方法,将js对象转换成字符串,传入服务器
...在向服务器发送数据时一般是字符串。我们可以使用JSON.stringify()方法将JavaScript对象转换为字符串。语法JSON.stringify(value[,replacer[,space]])参数说明:value:必需,要转换的JavaScript值(通常为对象或数组)。replacer:可选。用于转换结... 查看详情
json.stringify详解
参考技术A当我们使用JSON.stringify()序列化一个值为JSON字符串,只有JSON安全的值才可以通过JSON.stringify()转换为字符串。那么,什么是JSON安全的值?能够有效用JSON形式表示的任何值。非JSON安全的值,例如:undefined、function和symbol... 查看详情
通过json.parse(json.stringify(obj))转换的对象中的日期(date)
参考技术AJSON.parse(JSON.stringify())通过此方法确实可以实现一定程度的深拷贝,但是使用此方法,要注意对象中的字段如果是Function或者是Date格式的,深拷贝就会出现问题了。如果对象中有Function或者Date格式的数据,尽量还是不要... 查看详情
json.stringify
JSON.stringify(value[,replacer][,space]) value:是必选字段。就是你输入的对象,比如数组,类等。 replacer:这个是可选的。它又分为2种方式,一种是数组,第二种是方法。 情况一:replacer为数组时,通过后面的实验可以... 查看详情
如何删除嵌套的 JSON.stringify() 属性
】如何删除嵌套的JSON.stringify()属性【英文标题】:HowtoremovenestedJSON.stringify()properties【发布时间】:2017-08-2618:05:38【问题描述】:我正在尝试使用Typescript修改字符串。该字符串由JSON.stringify()方法创建。我想删除"inputPort"的属性"id... 查看详情