1

外部phpファイルにajaxリクエストを送信し、jsonを返しています。json のほとんどは簡単ですが、多次元部分を解析する方法がわかりません。


JSON:

{
    "success":"TRUE",
    "action":"JSON",
    "date":"06/29/12",
    "results":"true",
    "numResults":2,
    "0":[
        "id":1234,
        "name":"John Appleseed",
        "gender":"male",
        "average":2.5
    ],
    "1":[
        "id":5678,
        "name":"Jessica Smith",
        "gender":"female",
        "average":1.4
    ]
}

jQuery:

$.ajax({
url: "searchController.php",
data: searchData,
type: "GET",
success:function(q) {
    if (q) { // Results
        $('#search .container .body .ajax .returnedHTML .loadingScreen').hide();                                
        var json = $.parseJSON(q);
        console.log(json);
        if (json.success == "true") {
            var numResults = json.numResults;
            if (numResults == 1) {
            $('#search .container .body .ajax .returnedHTML .content').contents().remove();
            var htmlString = '<div class="searchContent"><ul><li class="returnedResults '+json.type+'"><a href="/#!/'+json.type+'/'+json.id+'/"><div class="title">'+json.name+'</div><div class="body"><div class="quickview"><ul><li><div class="average">'+json.average+'</div><br><span>Average</span></li><li><div class="rates">'+json.numrates+'</div><br><span>Rates</span></li><li><div class="followers">'+json.followers+'</div><br><span>Followers</span></li></ul></div></div></a></li></ul></div>';
            $('#search .container .body .ajax .returnedHTML .content').append(htmlString);
            console.log(htmlString);                                          
        }
    }
});

最初の次元のデータだけでなく、すべてのデータにアクセスできるように JSON を解析するにはどうすればよいですか? 私はこのサイトを見回しましたが、役立つものや役に立つものは何も見つかりません。どうもありがとう!

4

3 に答える 3

2

あなたの配列はでjson[0]あり、json[1]

 ...
for(var i in json) {
  if(!isNaN(i)) {
    ...
    refer to you variables as json[i].name, json[i].average, etc.
    ...
  }
}                                  
于 2012-06-29T07:11:36.707 に答える
1
$.ajax({
url: "searchController.php",
data: searchData,
type: "GET",
success:function(q) {
    if (q) { // Results
        $('#search .container .body .ajax .returnedHTML .loadingScreen').hide();                                
        var json = $.parseJSON(q);
        console.log(json);
        if (json.success.toLowerCase() == "true") {
            ...                                  
        }
    }
});


for(var key in json){
    if(json.hasOwnProperty(key){
       console.log(key);
       console.log(json[key]);
    }    
}
于 2012-06-29T07:20:16.377 に答える
0

JSONについては、もう一度同じように解析する必要があります。

var jsonArr1 = $.parseJSON(json.0);
var jsonArr2 = $.parseJSON(json.1);
于 2012-06-29T07:10:24.263 に答える