• 締切済み

responseTextから連想配列へ

ajaxによってサーブレットから以下のresponseTextを取得したとします。 ~ A ~ a : aa b : bb c : cc ~ B ~ d : dd このようなレスポンスから var array; array["a"] = 'aa'; array["b"] = 'bb'; というように連想配列を取得したいのですが、どのようにすれば良いかわかりません。 どなたか力を貸していただけませんか?

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

改行とコロンで分割してあげればよいのではないでしょうか。 データとしてどのような文字列があり得るのかがよくわからないので、基本的な考え方のみですが… var separator = " : "; var responseText = ["~ A ~", "a : aa", "b : bb", "c : cc", "~ B ~", "d : dd"].join("\r\n"); alert("responseText =\n\n" + responseText); var obj = {}, i, a; var r = responseText.replace(/\r?\n/g, "\r").split("\r"); for(i=0; i<r.length; i++){  a = r[i].split(separator);  if(a.length >= 2) obj[a[0]] = a[1]; } alert(obj["a"]); //aa alert(obj["c"]); //cc

tennis_eyes
質問者

お礼

助かりました!ありがとうございました。