2013-05-05 56 views
0

我正在學習json,並在我需要顯示其工作是記者的人時過濾json數據。基於查詢字符串過濾json數據

{ 
"person": [ 
    { 
     "firstName": "Clark", 
     "lastName": "Gable", 
     "job": "Reporter", 
     "roll": 20 
    }, 
    { 
     "firstName": "Bruce", 
     "lastName": "Willis", 
     "job": "Playboy", 
     "roll": 30 
    }, 
    { 
     "firstName": "James", 
     "lastName": "Parker", 
     "job": "Reporter", 
     "roll": 40 
    } 
] 
} 

頁被稱爲與我使用的job_param作爲變量從另一個函數查詢字符串

http://jsontest/person.html?job=reporter 



var job_param = gup('job'); 
alert("job selected is: " + job_param); 


$(function() { 
var people = []; 
$.getJSON('people.json', function(data) { 
    $.each(data.person, function(i, f) { 
     var tblRow = "<tr>" + "<td>" + f.firstName + "</td>" + 
    "<td>" + f.lastName + "</td>" + "<td>" + f.job + "</td>" + "<td>" + f.roll + "</td>" + "<td><a href=\"category.html?cat=" + f.firstName + "\">Go</a>" + "</td>" + "</tr>" 
     $(tblRow).appendTo("#userdata tbody"); 
}); 

}); 

}); 

HTML文件

<table id= "userdata" border="2"> 
<thead> 
     <th>First Name</th> 
     <th>Last Name</th> 
     <th>Job</th> 
     <th>City</th> 
     <th>Go</th> 
    </thead> 
    <tbody> 

    </tbody> 
</table> 

我可以生成一個新的JSON文件從mysql只顯示列表中的記者,但我不認爲這是應該如何完成的。謝謝。

回答

0

獲取查詢字符串值第一:

var job = GetQueryStringValue('job'); 

那麼JSON與變量比較:

$.each(data.person, function (key, value) { 
    console.log(key + ": " + value.firstName); 
    if (value.job == job) { 
     // If person reporter, do this 
    } else { 
     // If person is not a reporter, do this 
    } 
}); 
+0

'記者' 是基於一個查詢字符串的動態值。 – user2352107 2013-05-05 15:14:20

+0

然後,您可以使用更新的代碼,其中_GetQueryStringValue_只是一個函數,您可以使用該函數在協同映射之前獲取該值。 – 2013-05-05 15:18:55

+0

工作得很好,也感謝console.log例子。 – user2352107 2013-05-05 15:42:45

0

您可以添加類似:

$(function() { 
var people = []; 
$.getJSON('people.json', function(data) { 
    $.each(data.person, function(i, f) { 
     if(f.job=='Reporter') 
     { 
     var tblRow = "<tr>" + "<td>" + f.firstName + "</td>" + 
     "<td>" + f.lastName + "</td>" + "<td>" + f.job + "</td>" + "<td>" + f.roll + "</td>" + "<td><a href=\"category.html?cat=" + f.firstName + "\">Go</a>" + "</td>" + "</tr>" 
     $(tblRow).appendTo("#userdata tbody"); 
     }); 
     } 

    }); 

});