比如说,我们的数据非常复杂,还有类似头像,昵称,个人签名之类的信息。
可是我保存在本地,只需要用户名,和性别,肿么破呢?
也许你会说 so easy, 遍历数据重新提取下即可。
例如:
data = [ {name: , sex:, age: }, {name: , sex:, age: }, {name: , sex:, age: } ]; ( i=, new_data=[]; i<data.length; i++) { new_data.push({ name: data[i].name, sex: data[i].sex }); } str_json = .stringify(new_data); console.log(str_json); 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 第二个参数即可简单处理这种问题。
data = [ {name: , sex:, age: }, {name: , sex:, age: }, {name: , sex:, age: } ]; str_json = .stringify(data, [, ]); 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, ["name", "sex"]); console.log(str_json);
第二个参数只要传入需要的keys数组,就非常轻松的就完成这种处理了。
当然如果我们要更纠结的处理,比如要把 1,0 修改为男女,那么第二个参数可以用回调函数来处理。
data = [ {name: , sex:, age: }, {name: , sex:, age: }, {name: , sex:, age: } ]; str_json = .stringify(data, (k === ) { [, ][v]; } 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, function (k, v) { if (k === "sex") { return ["女", "男"][v]; } return v; }); console.log(str_json);
第二个参数如此强悍,为我们省去了不少麻烦。
您可能感兴趣的文章: