文字列を配列や連想配列に変換する方法があったら教えてください。
クラスブラウザな形式、あるいはjQueryで実装できることが望ましいです。
以下を参考にしてください。
strTest = '{"tokens": ["hoge", "foo", "bar"]}'
上記のstrTestのような文字列を配列や連想配列に変換する関数defがあるとすると、
dicTest = def(strTest)
としたとき、
dicTest[token]が配列["hoge", "foo", "bar"]を表し、
dicTest[token][0]が文字列"hoge"を表すようになる形が理想的です。
連想配列で直接二次元配列が作れないことは把握しています(http://nakawake.net/?p=831)。
当方初級レベルです。よろしくお願い致します。
クロスブラウザってのがどこまでを指すのかわからないけど大抵のブラウザは
>var str = '{"tokens": ["hoge", "foo", "bar"]}'; >var obj = JSON.parse(str); >obj.tokens hoge,foo,bar >obj.tokens[0] hoge
となる。
IE6,7といったネイティブでJSONが実装されていないブラウザもサポートするならjson2.jsを使う
その例ならJSON形式と同じなのでjQuery.parseJSON(strTest)でいいのでは?
まあこれだと文字列の値やtokensが""(''は駄目)で囲まれてないとエラーになりますが。
回答ありがとうございます。
エラーの件ですが、実際に扱いたい文字列は、simplejsonでdumpされているものなので大丈夫でした。帰ったら試してみます。
クロスブラウザってのがどこまでを指すのかわからないけど大抵のブラウザは
>var str = '{"tokens": ["hoge", "foo", "bar"]}'; >var obj = JSON.parse(str); >obj.tokens hoge,foo,bar >obj.tokens[0] hoge
となる。
IE6,7といったネイティブでJSONが実装されていないブラウザもサポートするならjson2.jsを使う
回答ありがとうございます。
json2、以前もはぎーさんに教えてもらったような記憶がほんのりあります。
帰ったら試してみます。
function def(str) { return JSON.parse ? JSON.parse(str) : jQuery.parseJSON(str); //jQuery1.4.1以上 } var strTest = '{"tokens": ["hoge", "foo", "bar"]}'; var dicTest = def(strTest); var token = "tokens"; console.log(dicTest[token]); //["hoge", "foo", "bar"] console.log(dicTest[token][0]); //hoge
回答ありがとうございます。
帰ったら試してみます。
回答ありがとうございます。
json2、以前もはぎーさんに教えてもらったような記憶がほんのりあります。
帰ったら試してみます。