underscore.kv
Key-value pairs serialization (aka, www-form-encoding
) of objects for Underscore.js.
Usage
For usage in node.js, install it via npm: npm install underscore.kv
.
You can use underscore.kv
as a stand-alone library, though it depends on Underscore.
Most people mix it into the Underscore namespace, which gains you the chaining wrappers.
// standalonevar _kv = ; // mixinvar _ = ;_mixin ;
API
_.toKV(object[, item_delim='&'[, kv_delim='=']])
Transforms an object to a string of URL-encoded KV-pairs (aka "www-form-encoding").
You may optionally override the delimiter inserted between items (&
by default),
or the delimiter inserted between keys and values (=
).
Note:
- All values end up as a string, implying all type information is lost.
- Both keys and values are URL-encoded once.
_// --> "foo=bar&feh=1&lol=true"
'&'
[, kv_delim='='
]])
_.fromKV(string[, item_delim=Restores an object from a string of URL-encoded KV-pairs (aka "www-form-encoding").
You may optionally override the delimiter inserted between items (&
by default),
or the delimiter inserted between keys and values (=
).
Note:
- All resulting values will be strings as all type information is lost.
- Both keys and values will be URL-decoded once.
_// --> { "foo":"bar", "feh":"1", "lol":"true" }
{}
[, prefix=''
]])
_.collapseObject(source[, target=Copies and flattens a tree of sub-objects into namespaced keys on the target object.
_// --> { "foo.bar":1 }
{}
])
_.uncollapseObject(source[, target=Inverse of _.collapseObject()
— copies all keys onto the target object,
expanding any dot-namespaced keys found.
_// --> { "foo":{ "bar":1 } }
Feedback
Find a bug or want to contribute? Open a ticket (or fork the source!) on github. You're also welcome to send me email at dsc@less.ly.
--
underscore.kv
was written by David Schoonover; it is open-source software and freely available under the MIT License.