zoukankan      html  css  js  c++  java
  • JSON.stringify 方法

    浅谈 JSON.stringify 方法

     

    用过 json 的应该都知道,把一个对象通过 stringify 之后提交给后台或者存储在 Storage 里是很常用的手段。
    但是 IE6-8 下没有 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

     
     
    分类: JavaScript
    标签: jsjson
  • 相关阅读:
    希尔排序(Shell Sorting)
    插入排序(Insertion Sorting)
    选择排序(Select Sorting)
    冒泡排序(Bubble Sorting)
    排序算法(Sort Algorithm)
    递归(Recursion)
    包的导入
    Base64编码
    python各种模块,迭代器,生成器
    CF821 B. Okabe and Banana Trees 简单数学
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3866641.html
Copyright © 2011-2022 走看看