zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    招行面试
    今日头条面试[教育岗]
    四方精创 面试
    ArrayList 源码
    redis缓存,穿透,击穿,雪崩
    hashMap
    集合整理
    阿里CBU技术部一面
    网安面试
    php递归获取顶级父类id
  • 原文地址:https://www.cnblogs.com/xmjs/p/12737787.html
Copyright © 2011-2022 走看看