0

PHP配列をjqueryに渡すと

$testArr = array('a','b','c');
echo json_encode($testArr);

Jquery スクリプト

$.post(
    "http://localhost/xiuno",
    {useranswers:arr,shijuanid:shijuanid},
    function(data){
        alert(data[0]);
    }

何も表示されないので、インデックスを使用してデータにアクセスするにはどうすればよいですか?

また、私を混乱させたことが 1 つあります。 それを示すように変更alert(data[0]);しました。JSON 型でも配列でもないため、インデックスでアクセスできないため、PHP スクリプトから取得したデータは正確には何ですか? JSONであるはずでしたが、そうではありませんでした。alert(data);["a","b","c"]["0":"a","1":"b","2":"c"]

また、PHP から直接配列を渡す方法はあるのでしょうか。次のコードは機能しません。

$testArr = array('a','b','c');
echo $testArr;

配列はエコーできないため、どうすればよいでしょうか?

4

3 に答える 3

1

出力["a","b","c"]は正しいです。これが JSON での配列の表現方法です (["0":"a","1":"b","2":"c"]は完全に無効です)。

これはまた、これが文字列dataであることを意味し、最初に JSON を JavaScript 配列に解析する必要があります。

data = $.parseJSON(data);
alert(data[0]);

これを行わない場合、は文字列の最初の文字、data[0]つまり にアクセスします。[

PHPスクリプトから取得されたデータは正確には何ですか?

XML、CSV、YAML と同様に、テキスト形式のデータ交換形式である JSON 。データをエンコードする方法です。データにアクセスするには、まずネイティブ データ型に変換する必要があります。それがあなたがすることです$.parseJSON。JSON を含む文字列を受け取り、オブジェクトまたは配列を返します。

PHPから直接配列を渡す方法があるのだろうか

いいえ、ありません。PHP 配列は、PHP だけが理解できるデータ構造です。データを別のシステム/プログラム/などに渡すには、まず相手が理解できるようにデータをエンコードする必要があります。JSON はそのための適切な選択です。

于 2013-06-29T15:37:10.453 に答える
0

PHP 関数 json_encode() は、JSON 形式のテキストの文字列を返します。JavaScript コードでこの文字列を受け取ったら、まずそれを解析してオブジェクトに戻す必要があります。

JSON を JS コードに解析すると、次のようになります。

//The JS way:    
data = JSON.parse(json);

//The jQuery way:
data = $.parseJSON(data);

From: JavaScript で JSON を解析しますか?

これがうまくいくことを願っています。

于 2013-06-29T15:39:19.920 に答える
0

JSON.parse を使用できます

var jsonData = JSON.parse(data)

于 2013-06-29T15:40:55.287 に答える