JSONstringify()方法的原生JS实现

JSON.stringify()方法的原生JS实现

JSON的一个常见用途是作为与Web服务器交换资料。当向Web服务器传送资料时,资料必须是字串格式。使用JSON.stringify()可以将JavaScript物件转换为字串型别。那么如何通过原生javascript来实现这个功能呢?

实现思路

通过递回呼叫,来实现对转换物件Object的深层value进行遍历。

利用array的join方法实现最终的字串拼接。

具体程式码

function json2str(o) {

let arr = [];

const fmt = function(s) {

if(typeof s == \object\ && s !== null) return json2str(s);

return /^(string)$/.test(typeof s) ? `${s}`: s;

}

for (var i in o) arr.push(`${i}:${fmt(o[i])}`)

return `{${arr.join(\,\)}}`

}

const obj = { name: Lily, age: 30, tel: 132xxxxxxxx, address: { city : beijing, district: haidian, detail: dddddddd} };

const generatedData = json2str(obj)

对比JSON.stringify方法

可直接在浏览器执行如下程式码

Create JSON string from a JavaScript object.

function json2str(o) {

let arr = [];

const fmt = function(s) {

if(typeof s == \object\ && s !== null) return json2str(s);

return /^(string)$/.test(typeof s) ? `${s}`: s;

}

for (var i in o) arr.push(`${i}:${fmt(o[i])}`)

return `{${arr.join(\,\)}}`

}

const obj = { name: John, age: 30, tel: 132xxxxxxxx, address: { city : beijing, district: haidian, detail: dddddddd} };

const myJSON = JSON.stringify(obj);

document.getElementById(demo).innerHTML = myJSON;

const myJSON2 = json2str(obj)

document.getElementById(demo2).innerHTML = myJSON2;

执行结果

小结

本文的JSON.stringify()方法的原生JS实现属于对javascript灵活应用的基本功。

实现思路来自于笔者平日的工作与思考的总结。

希望大家都能掌握以便在面试中脱颖而出。

您的点赞和收藏是我知识输出的最大鼓励

有需要前端学习资料的同学可以私行小编“学习”,获取学习资料一起交流学习

标签: 科技行业资讯

猜你喜欢