KV-pairs serialization (aka "www-form-encoding") of objects for Underscore.js
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
README.md
index.js
package.co
package.json
underscore.kv.co
underscore.kv.js

README.md

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.

// standalone
var _kv = require('underscore.kv');

// mixin
var _ = require('underscore');
_.mixin require('underscore.kv');

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.
_.toKV({ "foo":"bar", "feh":1, "lol":true })
// --> "foo=bar&feh=1&lol=true"

_.fromKV( string [, item_delim='&' [, kv_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.
_.fromKV("foo=bar&feh=1&lol=true")
// --> { "foo":"bar", "feh":"1", "lol":"true" }

_.collapseObject( source [, target={} [, prefix='' ]])

Copies and flattens a tree of sub-objects into namespaced keys on the target object.

_.collapseObject({ "foo":{ "bar":1 } })
// --> { "foo.bar":1 }

_.uncollapseObject( source [, target={} ])

Inverse of _.collapseObject() — copies all keys onto the target object, expanding any dot-namespaced keys found.

_.uncollapseObject({ "foo.bar":1 })
// --> { "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.