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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM