nodejs内置模块querystring中parse使用问题
Posted 戴三山
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs内置模块querystring中parse使用问题相关的知识,希望对你有一定的参考价值。
const qs = require(\'querystring\') let string = \'name-wangyi#pass-123#sex-0\' let obj = qs.parse(string, \'#\', \'-\')
输出obj会出现
而我手动改变字符串变对象:
// 实现parse var string1 = \'name=wangyi&pass=123&sex=0\' var arr1 = string1.split(\'&\') var arrAll = new Array(); console.log(arr1) for (let i = 0; i < arr1.length; i++) { arrAll.push(arr1[i].split(\'=\')); console.log(arrAll) } var arrObj = new Object(); for (let i = 0; i < arrAll.length; i++) { arrObj[arrAll[i][0]] = arrAll[i][1]; } console.log(arrObj) console.log(qs.parse(string1))
结果:
当然罪魁祸首就是object:null prototype
翻译一下:该对象没有原型,所以会显示出 [Object: null prototype](没有原型的意思是没有继承属性和方法,例如toString、hasOwnProperty等每个实例化每个对象时都会具有的方法)
官方nodejs文档解释如下
解决办法:
先将对象进行JSON字符串转化(JSON.stringify()
),然后再转化成对象(JSON.parse()
)
//解决Object:null prototype的方法: var arrString = JSON.stringify(qs.parse(string1)) var obj = JSON.parse(arrString) console.log("改变后", obj)
原型为Object
以上是关于nodejs内置模块querystring中parse使用问题的主要内容,如果未能解决你的问题,请参考以下文章