我第一次使用json所以这可能是一个愚蠢的问题。
我返回json的PHP代码如下:
$query="SELECT * FROM user_db WHERE rest_id='$rest_id'";
$result=mysqli_query($dbc, $query);
$row=array();
while($r = mysqli_fetch_assoc($result)) {
$rows{'Users'][] = $r;
}
echo json_encode($rows);
返回以下内容:
{"Users":
[{"user_id":"1361453832p3y","name":"","username":"sideshow","password":"sideshow","user_type":"1","rest_id":"1361453832fxL","email":""},
{"user_id":"1361523362ANq","name":"Sharon","username":"Sharon45","password":"Sharon45","user_type":"3","rest_id":"1361453832fxL","email":""},
{"user_id":"1361523653SXp","name":"Heather F","username":"fishface","password":"golliwog","user_type":"3","rest_id":"1361453832fxL","email":""}]}
我所要做的就是循环结果并将它们附加到页面上。
我目前的JQuery是:
var name="";
var username="";
var password="";
var user_type="";
var output="";
var obj=$.parseJSON(html);
$.each(obj, function(){
output+="<p><strong>"+this['name']+"</strong></p>";
output+="<p>Username: "+this['username']+" Password: "+this['password']+"</p>";
output+="<hr />";
});
$('.user_holder').html(output);
这只是三次回响每个领域。我还没有找到一种方法来遍历每个json字段......
答案 0 :(得分:3)
你可以试试这个:
var name="";
var username="";
var password="";
var user_type="";
var output="";
$.each($.parseJSON(html).Users, function(){
output+="<p><strong>"+this['name']+"</strong></p>";
output+="<p>Username: "+this['username']+" Password: "+this['password']+"</p>";
output+="<hr />";
});
如您所见,唯一的区别在于$.each
方法,我们传递Users
属性而不是整个对象。
以下是output
<p><strong></strong></p><p>Username: sideshow Password: sideshow</p><hr /><p><strong>Sharon</strong></p><p>Username: Sharon45 Password: Sharon45</p><hr /><p><strong>Heather F</strong></p><p>Username: fishface Password: golliwog</p><hr />
答案 1 :(得分:1)
更改此
$.each(obj, function(){
到此:
$.each(obj.Users, function(){
答案 2 :(得分:0)
您需要遍历每个JSON对象并引用包含数据的索引和引用键。
例如
obj['Users'][0]['Username']
将返回用户名的第一个实例。
因此您需要使用嵌套的for循环来遍历数据。
答案 3 :(得分:0)
如果我理解正确的话,你就太贴近了。我想你只是没有引用obj中的Users字段。
$.each(obj.Users, function(){
output+="<p><strong>"+this['name']+"</strong></p>";
output+="<p>Username: "+this['username']+" Password: "+this['password']+"</p>";
output+="<hr />";
});
console.log是你的朋友:)如果你做了
的console.log(OBJ)
你可以检查obj是什么,并看到它有一个用户字段,你会笑的:)
要了解console.log,请参阅此问题:What is console.log?
答案 4 :(得分:0)
尝试
$.each(json,function(i,j){
$(j).each(function(k,v){
console.log(v.user_id);
console.log(v.username);
});
});
答案 5 :(得分:0)
尝试:
$.each(obj.Users, function(){
output+="<p><strong>"+this['name']+"</strong></p>";
output+="<p>Username: "+this['username']+" Password: "+this['password']+"</p>";
output+="<hr />";
});
答案 6 :(得分:0)
尝试过这样吗?
for(var i=0; i < obj.Users.length; i++){
var username =obj.Users[i].username;
//TODO get remaining value of obj.Users[i];
}