zoukankan      html  css  js  c++  java
  • 浅谈 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, "	");
    console.log(str_json);
    str_json = JSON.stringify(data, ["name", "sex"], "	");
    console.log(str_json);

    其实,我觉得这是个非常鸡肋的功能,,一般情况下却是没啥用。

    好了,今天的分享就这些了,希望对新手朋友有所帮助。

    参考资料:

    JSON.stringify() - JavaScript | MDN

    JSON in JavaScript

  • 相关阅读:
    C++中重载,重写,隐藏的区别
    以太网(局域网)交换机工作原理
    IP地址、MAC地址、ARP地址解析协议
    Metasploitable渗透测试实战——Windows漏洞 MS08-067复现
    一次对真实网站的SQL注入———SQLmap使用
    多字节与宽字节转换
    char*、string、CString各种字符串之间转换
    国密SM4分组加密算法实现 (C++)
    网络编程——基于UDP的网络化CPU性能检测
    U盘小偷——C++实现U盘插入检测和文件扫描拷贝
  • 原文地址:https://www.cnblogs.com/52cik/p/js-json-stringify.html
Copyright © 2011-2022 走看看