人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascript(jquery)に関する質問です。
文字列を配列や連想配列に変換する方法があったら教えてください。
クラスブラウザな形式、あるいは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)。
当方初級レベルです。よろしくお願い致します。

●質問者: ぷりっぷりのおしり
●カテゴリ:コンピュータ インターネット
✍キーワード:BAR def hoge JavaScript jQuery
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● 霜月のい
●25ポイント

その例ならJSON形式と同じなのでjQuery.parseJSON(strTest)でいいのでは?

まあこれだと文字列の値やtokensが""(''は駄目)で囲まれてないとエラーになりますが。

◎質問者からの返答

回答ありがとうございます。

エラーの件ですが、実際に扱いたい文字列は、simplejsonでdumpされているものなので大丈夫でした。帰ったら試してみます。


2 ● T.Nishibayashi
●30ポイント ベストアンサー

クロスブラウザってのがどこまでを指すのかわからないけど大抵のブラウザは

>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、以前もはぎーさんに教えてもらったような記憶がほんのりあります。

帰ったら試してみます。


3 ● Cherenkov
●25ポイント
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
◎質問者からの返答

回答ありがとうございます。

帰ったら試してみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ