2012-01-31 14 views
15

私は完璧に動作するコードでajaxを使用しています。私は出力として欲しいjsonまたは配列を与えてくれます。 私が使用しているコードは、このテスト変数が私にJSON /配列を与える、json/arrayをajax responseTextからjavascript配列に変換するにはどうすればいいですか?

xmlhttp=new XMLHttpRequest(); 
xmlhttp.open("GET","http://map_ajax_control.php",false); 
xmlhttp.send(); 

var test = xmlhttp.responseText; 
alert(test); 

です。

JavaScript配列のtest変数で受け取ったデータを取得したいとします。

質問は、どのようにjsonデータをjavascript配列でデコードすることができますか? 私は

var output = new Array(); 
output = json_decode(xmlhttp.responseText); 

、ようなコードを使用しているが、このコードは私に任意の出力を与えていません。
どうすればこの2つのことができますか?

+2

はやり過ぎだろうが、私は、これはそのないworking.Itは私にいずれかを与えていないalso.But使用していたのJSON AJAXハンドラ – ComethTheNerd

答えて

13

はこれを試してみてください。

私はあなたがこのアプローチに従うことをお勧め:

は、サーバーでPHP binding for JSONを使用して送信し、Javascript library for JSONを使用して同じことをデコードするデータをエンコードします。 はよう:

var myObject = eval('(' + myJSONtext + ')'); 

または

var myObject = JSON.parse(myJSONtext, reviver); 

注:あなたのソリューションへのjavascriptファイルjson2 ..

Problem with storing values in Array from php to AJAX

+0

絶対に!私は単純な型の代わりにresponseTextオブジェクトを取得していました。このアプローチを使用して(そしてオブジェクトについて少し知っている)、私はフィールド** d **を抽出することができます。これは私がこのケースで気にしたブール値です。 – Allen

+0

WTH、jsonをデコードする 'eval'オプションを使用しないでください。 – T0m

18

ほとんどのブラウザはJSON.parse()をサポートしています。その使い方は簡単です:あなたはjson2.jsを使用して、それを実装することができないブラウザのために

 

obj = JSON.parse(xmlhttp.responseText); 
alert(obj.length); 
 

。それは、あなたのPHPコードでは、あなたの問題を解決するための簡単なjson_encode(your array);を使用し、JavaScriptをしない場合はmyData= eval("(" + xmlHttp.responseText + ")");を使用し、

var arr = xmlhttp.responseText.Split(','); 

+0

ためのロジックであります出力 –

1

JSONはJavaScriptのオブジェクト表記に過ぎないを含めます。 あなたはSudhirの示唆どおりに解析する必要があります。 jQuery.parseJSONを使用することもできます。

そして、ajaxを行うために、いくつかのライブラリ、好ましくはjQueryを使用することを強くお勧めします。

このすべてが必要な場合は、全体のjQueryライブラリを使用したWebアプリをダウン計量http://api.jquery.com/jQuery.ajax/

関連する問題