Jeśli jest to jedno-liner jesteś po biblioteka Podkreślenie ma ładną funkcję o nazwie object
, która przyjmuje tablicę par i buduje obiekt z nim:
> _.object(["some","param"],["over","here"])
{some: "param", over: "here"}
Jeśli używasz podkreślenia ty może jeden-line budowę obiektu z łańcucha zapytania następująco:
> var s = 'some=param&over=here';
> _.object(s.split('&').map(function(p){return p.split('=');}))
{some: "param", over: "here"}
teraz, jeśli chcesz to obiekt JavaScript, gotowe. Mówiłeś, że w swoim pytaniu, że chciałeś JSON, więc następnym krokiem jest całkiem proste:
> JSON.stringify(_.object(s.split('&').map(function(p){return p.split('=');})))
"{\"some\": \"param\", \"over\": \"here\"}"
Oto live demo
Jeśli nie używasz podkreślenia zawsze można napisać funkcję użytkową Twój własny.
Ta jedna linia jest trochę brzydka, ale Firefox 22 ma niektóre z nadchodzących funkcji ES6, takich jak tablice i strzały, dzięki czemu kod może stać się jeszcze bardziej kompaktowy w przyszłości, np.
JSON.stringify(_.object(s.split('&').map(p => p.split('='))))
lub nawet
JSON.stringify(_.object([p.split('=') for (p of s.split('&'))]))
A może po prostu trzymać się czytelny dla pętli i stworzyć własną funkcję. :)
używasz jquery? jeśli tak, spróbuj Jeśli używasz jQuery, JSON.parse (this.yourURLString); lub jQuery.parseJSON (this.yourURLString); – Satya
[Ta odpowiedź] (http://stackoverflow.com/a/2880929/502381) zwraca rodzaj obiektu, który chcesz. – JJJ
Czy pytasz o czysty ciąg znaków, aby napisać tutaj problem konwersji? A może używasz serwera JavaScript, takiego jak node.js, i masz parametry, które chcesz przekształcić w obiekt, a następnie, prawdopodobnie, w JSON? –