1

よろしくお願いします。私はJSONを初めて使用$.getJSONし、運が悪かったためにいくつかのフォームフィールドに入力しようとしてきました。

サーバーからの応答をテストするだけになるまで、断片を切り刻み始めました(以下にリストされているURLをブラウザーで表示すると、サーバーはJSONを提供します)。

$(document).ready(function(){
    $('#button').live('click', function(){
        $.getJSON('http://localhost:8000/core/api/master-assembly/16', function(data) { 
        // alert(data); // uncomment for debug
           $('#showdata').html("<p>item1="+data.afAgeCounter+" item2="+data.afWordCounter+" item3="+data.idNumber+"</p>");
        });
    });
});

私のJSONデータは次のようになります。

{"success":true,"data":{"afWordCounter":123,"afAgeCounter":456,"idNumber":789, ...

このスクリプトを実行すると、次の出力が得られます。

item1=未定義item2=未定義item3=未定義

コメントを外すと

alert(data);

見返りは[object Object]

では、ここで何が得られるのでしょうか。

4

5 に答える 5

2

試す

$('#showdata').html("<p>item1="+data.data.afAgeCounter+" item2="+data.data.afWordCounter+" item3="+data.data.idNumber+"</p>");
于 2012-07-26T21:46:43.043 に答える
2

次のようにアクセスする必要があります。

data.data.afWordCounter

json変数はこの構造を持っているので:

data = {
    "success":true,
    "data":{
         "afWordCounter":123,"afAgeCounter":456,"idNumber":789,
         ...
于 2012-07-26T21:46:58.897 に答える
1

afAgeCounter返されるデータには、などのプロパティがありません。それらを持っているdataプロパティがあります。

data最初にそのプロパティを取得する必要があります。

if(data.success){
    data = data.data;
    $('#showdata').html("<p>item1="+data.afAgeCounter+" item2="+data.afWordCounter+" item3="+data.idNumber+"</p>");
}
于 2012-07-26T21:50:40.127 に答える
1

他の人が理解していなかったように、JSONの結果全体が、オブジェクトであるコールバックのパラメーターである'data'です。

'success'と'data'の2つのプロパティがあります。'data'自体は、独自のプロパティ、afWordCounter、afAgeCounterなどを持つオブジェクト{}です。したがって、内部の'data'オブジェクトのプロパティにアクセスするには、data.data.afWordCounterなどを使用する必要があります。

メソッド本体を次のようなものに切り替えると、何が起こっているのかがより明確になる可能性があります。

    $.getJSON('http://localhost:8000/core/api/master-assembly/16', function(jsonresult)         { 

       $('#showdata').html("<p>item1="+jsonresult.data.afAgeCounter+" item2="+jsonresult.data.afWordCounter+" item3="+jsonresult.data.idNumber+"</p>");
    });
于 2012-07-26T21:52:11.353 に答える
0

ここに積み上げるだけですが、jsオブジェクトに何が含まれているのか疑問に思っている場合は、JSON.stringifyを使用していつでも文字列に出力できます:https ://github.com/douglascrockford/JSON-js/blob/master/json2 .js

したがって、問題のオブジェクトは、次の方法でオブジェクトに含まれているものを確認できます。

alert(JSON.stringify(mysteryObject));

また

console.log(JSON.stringify(mysteryObject);
于 2013-02-13T18:12:01.677 に答える