json.stringify方法

童彪      2022-02-11     186

关键词:

用过 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

 
分类: JavaScript
标签: jsjson

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... 查看详情