淺談 JSON.stringify 方法

來源:互聯網
上載者:User

淺談 JSON.stringify 方法
今天我們來簡單介紹下 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);其實,我覺得這是個非常雞肋的功能,,一般情況下卻是沒啥用。 好了,今天的分享就這些了,希望對新手朋友有所協助。  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.