jquery
2016-07-07 8 views -5 likes 
-5

ich mit dem folgenden Code Hilfe benötigen:Daten können nicht von Objekt abzurufen

<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) 

Der Ausgang ich erhalte, ist undefined. Bitte helfen Sie mir eine Lösung zu finden? Warum bekomme ich keine Daten?

+1

Können Sie Ihre Frage bitte redigieren, um Sinn zu ergeben? Weitere Informationen finden Sie auf der [ask] -Seite und in [tour]. –

Antwort

1

Schleife employeeJSON statt 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

Gemessen am OP versuchen sie, die 'firstname',' lastname', 'gehalts' etc Eigenschaften nicht zu bekommen Der Mitarbeiter nennt –

+0

Danke für Ihren Rat. Bearbeitete Antwort (nur zum Auskommentieren von Code erforderlich) – Roxoradev

1

Da die Fakir -Eigenschaft des Objekts ein Objekt selbst ist, sind die Parameter, die an den each() -Handler übergeben werden, der Schlüssel und der Wert der Eigenschaften im Objekt. Daher können Sie diese auf den String direkt verketten, wie folgt aus:

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

Working example

+0

Sir Vielen Dank für Ihre Wenn ich alle Objekte wie (Fakir, Pagal) und ihre Daten, wie Sie ändern müssen. –

+0

Ich bin froh zu helfen. Dazu benötigen Sie zwei Schleifen. Eine durch jede Ebene von Objekten zu gehen, wie folgt: https://jsfiddle.net/RoryMcCrossan/dvu21zs3/ –

0

Es gibt keine Array in Ihrem jsonString Variable. Warum haben Sie versucht, dieses Objekt zu iterieren?

Sie können dies wie folgt tun;

$(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

Die 'each()' - Methode von jQuery ist sehr tolerant, da sie problemlos die Eigenschaften eines Objekts iteriert. Siehe meine Antwort für ein Beispiel. –

+0

$ .Each (MitarbeiterJSON.Fakir, Funktion (k, v) { Ergebnis + = v + "
"; }); Es ist gut, Sir, aber wenn ich nur employeeJSON und möchte alle Daten wie Objekt und sein Element, wie kann ich einfachen Code schreiben, um alle verschachtelten Daten zusammen mit Objekt zu finden. –

Verwandte Themen