Wondering what’s next for npm?Check out our public roadmap! »

    form2json

    0.1.0 • Public • Published

    Build Status

    Form2json is a decoder for x-www-form-urlencoded data that supports complex structures. It uses simple dot-notation for nested properties and square brackets to denote arrays.

    Syntax

    Here are some examples to illustrate the syntax.

    Nested Objects

    The following string represents a nested object:

    planet.name=Mars&planet.diameter=0.532
    

    The string will be decoded as:

    {
    	planet: {
    		name: "Mars",
    		diameter: 0.532
    	}
    }
    

    There are no restrictions on the nesting-level:

    planet.mars.diameter=0.532&planet.mars.mass=0.11
    
    {
    	planet: {
    		mars: {
    			diameter: 0.532,
    			mass: 0.11
    		}
    	}
    }
    

    Arrays

    Arrays can be encoded using square brackets:

    planets[0]=Venus&planets[1]=Earth&planets[2]=Mars
    
    {
    	planets: ["Venus", "Earth", "Mars"]
    }
    

    If the index is omitted, form2json will push the values to the array in order of appearance:

    planets[]=Mars&planets[]=Venus&planets[]=Earth
    
    {
    	planets: ["Mars", "Venus", "Earth"]
    }
    

    This feature is really useful, as it allows you to re-order the input fields on the client, without having to update the field names. In order to use this feature with arrays containing nested objects, we have to use a slightly different syntax:

    planets[$2].name=Mars&planets[$2].mass=0.11&planets[$0].name=Venus&planets[$0].mass=0.82&planets[$1].name=Earth&planets[$1].mass=1
    
    {
    	planets: [
    		{ name: "Mars", mass: 0.11 },
    		{ name: "Venus, mass: 0.82 },
    		{ name: "Earth", mass: 1 }
    	]
    }
    

    In fact you may use any non-numerical value as index. All items having the same index will be grouped into one object.

    Install

    npm i form2json

    DownloadsWeekly Downloads

    6

    Version

    0.1.0

    License

    none

    Last publish

    Collaborators

    • avatar