Skip to content

Latest commit

 

History

History
133 lines (104 loc) · 1.45 KB

README.md

File metadata and controls

133 lines (104 loc) · 1.45 KB

##querystring Build Status

support object or array like php did: ?a[]=1&a[]=2 -> a=[1,2]

###Usage

install in shell

npm install query-string-object

in js file

qs = require('query-string-object')
qs('xx=yy&zz..') // just like what is pass to the native qs.parse
qs.stringify({
  fInt: 1,
  fString: 'string',
  fObject: {
    anobject: {a:1, b:2},
    anything: 'thing'
  },
  fArray: [1,2,"string"]
}) 
// fInt=1&fString=string&fObject[anobject][a]=1&fObject[anobject][b]=2&fObject[anything]=thing&fArray[]=1&fArray[]=2&fArray[]=string

###Tests

npm install
./node_modules/.bin/mocha --reporter tap test.js

###Expects

####a=1&b=2

output

{
  a:1,
  b:2 
}

####a=1&b[]=1&b[]=2&c=3

output

({
  a: 1,
  b: [1, 2],
  c: 3
});

####a=1&b[]=1&c=3

output

({
  a: 1,
  b: [1],
  c: 3
});

####a=1&b[1]=1&c[3]=2&c=3

output

({
  a: 1,
  b: {
    1: 1
  },
  c: {
    3: 2
  }
});

####a=1&b[eric]=dum&c[stive]=jobs&c=3

output
({
  a: 1,
  b: {
    eric: "dum"
  },
  c: {
    stive: "jobs"
  }
});

####a=1&b[eric]=dum&b[stive]=jobs&c=3

output

({
  a: 1,
  b: {
    eric: "dum",
    stive: "jobs"
  },
  c: 3
});

####a=1&b[eric][]=dum&b[stive][]=jobs&b[stive][]=fans&c=3

output

({
  a: 1,
  b: {
    eric: ["dum"],
    stive: ["jobs", "fans"]
  },
  c: 3
});