Pot.Serializer.parseFromQueryString

{Array|Object} Pot.Serializer.parseFromQueryString ({String} queryString [, {Boolean} toObject = false])

Pot.js と PotLite.js で利用可能。

クエリ文字列 queryString を配列またはオブジェクトにデコードして返します。

serializeToQueryString で作成できるクエリ文字列 queryString を、
2 つのアイテムを持つ配列からなる配列にして返します。
引数 toObject が 真 (true) として渡されると、
キーバリューのペアでなるオブジェクトとして返します。
各値とキーは、Pot.urlDecode() によってデコードされます。

Pot.globalize() が適応されている場合、Pot.parseFromQueryString() が parseFromQueryString() で実行できます。

クエリ文字列からデコードされた配列 (items 形式) が返ります。
toObject が true の場合、オブジェクトで返ります。

// デフォルトは配列 (items 形式) です
var query = 'foo=1&bar=bar2&baz=';
Pot.debug(Pot.parseFromQueryString(query));
// => [['foo', '1'], ['bar', 'bar2'], ['baz', '']]
// 第二引数 toObject を true で渡した場合はオブジェクトになります。
var query = 'key1=value1&key2=value2';
Pot.debug(Pot.parseFromQueryString(query, true));
// => {key1: 'value1', key2: 'value2'}
// 次のような for-in などの動作に影響する未知の名前の可能性がある場合は、
// 配列で扱うと確実です。
var query = 'prototype=value1&__iterator__=value2';
Pot.debug(Pot.parseFromQueryString(query));
// => [['prototype', 'value1'], ['__iterator__', 'value2']]
// キーなしの場合
var query = 'http%3A%2F%2Fwww.example.com%2F';
Pot.debug(Pot.parseFromQueryString(query));
// => [['', 'http://www.example.com/']]
var query = '%40A=16%5E2%262&%40B=(2%2B3%3E%3D1)';
Pot.debug(Pot.parseFromQueryString(query, true));
// => {'@A': '16^2&2', '@B': '(2+3>=1)'}
var query = 'foo=bar&baz[]=qux&baz[]=quux&corge=';
Pot.debug(Pot.parseFromQueryString(query, true));
// => {foo: 'bar', baz: ['qux', 'quux'], corge: ''}