jquery
2016-07-07 39 views -5 likes 
-5

我需要用下面的代码帮助检索数据:无法从对象

<div id="divResult"></div> 
$(document).ready(function() { 
    var jsonString = '{"Fakir":{"firstName":"Bharat","lastName":"Tiwari","gender":"Male","salary":50000},"Pagal":{"firstName":"Nanu","lastName":"Pagal","gender":"Male","salary":90000}}'; 
    var employeeJSON = JSON.parse(jsonString); 
    var result = ''; 

    $.each(employeeJSON.Fakir,function(i, item){ 
     result += item['firstName']+"<br>"; 
     /*result += item.lastName + "<br>"; 
     result += item.gender + "<br>"; 
     result += item.salary + "<br> <br>";*/ 
    }); 
    $("#divResult").html(result) 
}) 
$("#divResult").html(result) 

我得到的输出是undefined。请帮我找一个解决方案?为什么我没有获取数据?

+1

你可以好心编辑你的问题有意义吗?查看[问]页面并通过[旅游]了解更多详情。 –

回答

1

employeeJSON而不是employeeJSON.Fakir

$(document).ready(function() { 
 
    var jsonString = '{"Fakir":{"firstName":"Bharat","lastName":"Tiwari","gender":"Male","salary":50000},"Pagal":{"firstName":"Nanu","lastName":"Pagal","gender":"Male","salary":90000}}'; 
 

 
var employeeJSON = JSON.parse(jsonString); 
 
var result = ''; 
 
$.each(employeeJSON,function(i,item){ 
 
    result += item['firstName'] + "<br>"; 
 
    result += item.lastName + "<br>"; 
 
    result += item.gender + "<br>"; 
 
    result += item.salary + "<br> <br>"; 
 
    }); 
 
    $("#divResult").html(result) 
 
    })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="divResult"> </div>

+0

由OP判断他们正试图获得'firstname','lastname','薪水'等属性,而不是员工姓名 –

+0

感谢您的建议。编辑回答(只需取消注释某些代码) – Roxoradev

1

由于对象的Fakir属性本身就是一个对象,传递给each()处理函数的参数将成为对象中属性的键和值。因此,你可以将它们直接串联字符串,像这样:

$.each(employeeJSON.Fakir, function(k, v) { 
    result += v + "<br>"; 
}); 

Working example

+0

先生谢谢你如果我需要得到像(Fakir,Pagal)和它的数据的所有对象,如何修改。 –

+0

很高兴帮助。要做到这一点,你需要两个循环。一个要通过每个级别的对象,像这样:https://jsfiddle.net/RoryMcCrossan/dvu21zs3/ –

0

。在你的jsonString没有数组变量。你为什么试图迭代这个对象?

您可以这样做,如下所示;

$(document).ready(function() { 
    var jsonString = '{"Fakir":{"firstName":"Bharat","lastName":"Tiwari","gender":"Male","salary":50000},"Pagal":{"firstName":"Nanu","lastName":"Pagal","gender":"Male","salary":90000}}'; 

    var employeeJSON = JSON.parse(jsonString); 
    var result = ''; 
    var item = employeeJSON.Fakir; 
    result += item['firstName']+"<br>"; 
    result += item.lastName + "<br>"; 
    result += item.gender + "<br>"; 
    result += item.salary + "<br> <br>"; 

    $("#divResult").html(result) 
}); 
+1

jQuery的'each()'方法相当宽容,因为它可以愉快地遍历对象的属性。以我的答案为例。 –

+0

$ .each(employeeJSON.Fakir,function(k,v){ result + = v +“
”; }); 它的好先生,但如果我只使用employeeJSON并希望像对象和它的元素的所有数据我怎么能编写简单的代码来找到所有嵌套的数据和明智的对象。 –

相关问题