1

こんにちは、誰かが私を助けてくれるかどうか疑問に思っていましたか?

次のコードがあります。PHP ファイルから JSON データを取得します。Json は次の形式です。

{"Title":"rose","Price":1.25,"Number":15},{"Title":"daisy","Price":0.75,"Number":25},{"Title":"orchid","Price":1.15,"Number":7} 

この JSON は、次の php コードを使用して作成されます。

$shop = array();
$shop = array( array( Title => "rose", 
                  Price => 1.25,
                  Number => 15 
                ),
           array( Title => "daisy", 
                  Price => 0.75,
                  Number => 25,
                ),
           array( Title => "orchid", 
                  Price => 1.15,
                  Number => 7 
                )
         );

 echo json_encode($shop);

obj.Title を使用してデータにアクセスしようとすると、未定義のメッセージが表示されます。

 $.ajax({
        type: "GET",
        url: "data.php",
        success: jsonDo
    });

    //JSON DATA = {"Title":"rose","Price":1.25,"Number":15},{"Title":"daisy","Price":0.75,"Number":25},{"Title":"orchid","Price":1.15,"Number":7}

    function jsonDo(data) {

        var obj = jQuery.parseJSON(data);

        alert(obj.Title)

    }

JSON のキーにアクセスしてデータを表示するにはどうすればよいでしょうか?

どうもありがとう。

4

5 に答える 5

2
var obj = jQuery.parseJSON('{"Title":"rose","Price":"1.25","Number":"15"}');

alert(obj.Title);

この作品。コードの違いを確認してください。

OK、これはより正しいです:

var obj = [
    {"Title":"rose","Price":"1.25","Number":"15"},
    {"Title":"daisy","Price":"0.75","Number":"25"},
    {"Title":"orchid","Price":"1.15","Number":"7"}
    ];


 alert(obj[1].Title);
于 2012-07-04T21:33:53.613 に答える
1

dataType: "JSON"関数にパラメーターを通知することにより、JSONオブジェクトを期待していることを指定する必要があるajax()ため、データを解析する必要はありません。

于 2012-07-04T21:38:58.273 に答える
1

コードにいくつかのPHPエラーがあるようです。これにより、phpが通知/警告を生成し、Json出力が破損し、JavaScriptが解析しようとしたときにエラーが発生する可能性があります。

正しいjSon出力は

[{"Title":"rose","Price":1.25,"Number":15},{"Title":"daisy","Price":0.75,"Number":25},{"Title":"orchid","Price":1.15,"Number":7}]

配列内にあるため、JSは次のようになります。$。ajax({type: "GET"、url: "data.php"、success:jsonDo});

function jsonDo(data) {
    var obj = jQuery.parseJSON(data);
    alert(obj[0].Title)

}
于 2012-07-04T21:43:38.520 に答える
0

jQueryの$.getJSONメソッドを使用するだけです:

$.getJSON('data.php',function(data) {
    alert(obj.Title);
});
于 2012-07-04T21:30:45.537 に答える
0

obj[0]["Title"] または obj[0].Title を試してください

多くの配列を入れ子にしたことと、yoyu がそれらに再びアクセスする必要があることを忘れないでください。

于 2012-07-04T21:32:49.687 に答える