1

この場合、「homedata」または「faq」を参照しています。「homedata」か「faq」かを知りたいので、変数に保存して比較に使用できます。私のjqueryの場合、これは私のスクリプトです:

var varHolder ="";  
$.ajax({
type: "POST",
//data: data_json,
dataType: "json",
url: "sql_queries.php",
success: function(data) {
$.each(data, function(key, val) {

            //read the index name here and store it to varholder
            varHolder = data[key];

            //then compare it like this
            if(varHolder == "homedata"){
                //write something to the dome
            }else if(varHolder == "faq"){
                //write something to the dome
            }
        });

    },
    error:function(){
           console.log("error fetching data. please refresh the page");//alert("Send Email Failure,Please try again");
    },
    complete:function(){
        console.log("complete");//alert("Send Email Failure,Please try again");
    }
}); 

ここに私のjsonの結果があります:

[
{
"homedata":
    {
    "approve_title":"home bla blah",
    "approve_desc":"this is the approve JSON"
    }
},
{
"homedata":
    {
    "approve_title":"another home bla blah",
    "approve_desc":"tthis is the approve JSON",
    "approve_path":"backend/pdf/this is the approve JSON.pdf"
    }
},
{
"faq":
    {
    "progproj_title":"whatever JSON",
    "progproj_details":"sos sos sos"
    }
}

]

4

2 に答える 2

3

json 応答が次のように見える場合は、ドット表記を使用できます。

data = [{ key : value }, { key2 : value2} ]

キーの下の値を次のように取得できます

var value = data[0].key;
var value2 = data[1].key;

編集

ここで大まかなフィドルを作成しました。これは、json 応答をループし、「homedata」または「faq」キーの名前を div に書き込みます。毎回オーバーライドされるため、json 配列の最後のキーが最後に表示されることに注意してください。これは、キー名を取得する方法を説明するためのものです。うまくいけば、これが役に立ちます

于 2012-11-13T08:41:05.740 に答える
0

「console.log(データ);」// これはすでにインデックスの名前を保持しているので、このように行うことができます elementIndexName = ''+data; または " $.each(data, function(key, val) {

        //read the index name here and store it to varholder
        varHolder = ""+data;

        //then compare it like this
        if(varHolder == "homedata"){
            //write something to the dome
        }else if(varHolder == "faq"){
            //write something to the dome
        }
    });

},

"

于 2012-11-13T08:49:03.063 に答える