• qs文档翻译


    安装:

    npm install qs --save-dev

    基本用法:

     1 let qs = require('qs');
     2 let assert = require('assert');
     3 
     4 
     5 //qs.parse('a=c')将字符串等式转换为对象
     6 let obj = qs.parse('a=c');
     7 console.log(obj)//{a:'c'}
     8 
     9 //qs.stringify(obj)将对象转化为字符串等式
    10 let str = qs.stringify(obj);
    11 console.log(str)//a=c

    解析对象:

    qs.parse(string, [options]);

    qs可以通过使用[]在查询字符串中创建嵌套的对象

    如:

    qs.parse('foo[bar]=baz'

    等于:

      foo: {
            bar: 'baz'
        }

    解析URL编码:

    qs.parse('a%5Bb%5D=c')

    等于:

      a: { b: 'c' }

    对象嵌套:

    1 qs.parse('foo[bar][baz]=foobarbaz'

    结果:

     foo: {
            bar: {
                baz: 'foobarbaz'
            }
        }

    默认情况下,qs可以解析1000个参数,可以通过parameterLimit选项进行设置:

    1 var limited = qs.parse('a=b&c=d', { parameterLimit: 1 });
    2 // { a: 'b' }

    ignoreQueryPrefix:选项,忽略查询字符:

    1 var prefixed = qs.parse('?a=b&c=d', { ignoreQueryPrefix: true });

    结果:

     { a: 'b', c: 'd' }
    delimiter分隔符选项:去掉分号:
    qs.parse('a=b;c=d', { delimiter: ';' })
    //{ a: 'b', c: 'd' }

    分隔符可以是正则表达式:

    qs.parse('a=b;c=d,e=f', { delimiter: /[;,]/ });
    
    //{ a: 'b', c: 'd', e: 'f' }

    allowDots 选项:将点.变成对象;

    1 qs.parse('a.b=c', { allowDots: true });
    2 //{ a: { b: 'c' } }
    charset :如果您必须处理旧版浏览器或服务,还支持将百分比编码的八位字节解码为iso-8859-1
    1 qs.parse('a=%A7', { charset: 'iso-8859-1' }
    2 //{ a: '§' }
    解析数组:
    qs.parse('a[]=b&a[]=c');
    //{ a: ['b', 'c'] }

    在解析数组的时候,可以指定index:

    1 qs.parse('a[1]=c&a[0]=b')
    2 //{ a: ['b', 'c'] }

    如果是空值,也将保留:

    1 qs.parse('a[]=&a[]=b')
    2 //{ a: ['', 'b'] }
    1 a[0]=b&a[1]=&a[2]=c
    2 // { a: ['b', '', 'c'] }

    如果索引超过20,索引将会被看作是key:

    1 qs.parse('a[100]=b')
    2 //{ a: { '100': 'b' } }

    转化为字符串:

    qs.stringify(object, [options]);
    qs.stringify({ a: 'b' })
    //'a=b'
    
    qs.stringify({ a: { b: 'c' } })
    //a%5Bb%5D=c
     qs.stringify({ a: { b: 'c' } }, { encode: false })
    //a[b]=c
    qs.stringify({ a: ['b', 'c', 'd'] })
    // 'a[0]=b&a[1]=c&a[2]=d'
    qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false });
    // 'a=b&a=c&a=d'
    qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' })
    // 'a[0]=b&a[1]=c'
    qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' })
    // 'a[]=b&a[]=c'
    qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' })
    // 'a=b&a=c'
    qs.stringify({ a: { b: { c: 'd', e: 'f' } } });
    // 'a[b][c]=d&a[b][e]=f'
    qs.stringify({ a: { b: { c: 'd', e: 'f' } } }, { allowDots: true });
    // 'a.b.c=d&a.b.e=f'
    qs.stringify({ a: '' })
    //a=
    qs.stringify({ a: 'b', c: 'd' }, { addQueryPrefix: true })
    //'?a=b&c=d'
    1 qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' })
    2  'a=b;c=d'
     
  • 相关阅读:
    在Windows上搭建Git Server
    Android Studio Intent使用(显式、隐式)
    Android Studio2.0 教程从入门到精通Windows版
    Android Studio2.0 教程从入门到精通Windows版
    【转】自动化框架中引入ExtentReport美化报告
    阿里巴巴Java开发规约IDEA插件安装及使用
    13位时间戳与格式化日期之间的转换实现
    计算机基础知识试题及答案
    构建最基础的Spring项目及所需要的jar包
    (二)SpringMVC+mybatis实践
  • 原文地址:https://www.cnblogs.com/yangguoe/p/10126067.html
Copyright © 2020-2023  润新知