2017-08-21 1 views
0

Ich habe einen $ localstroge mit dem unten gespeicherten Wert:Suchen Sie nach Einzelteilwert in localstroge

{"EmployerDetails":{"Distance":30,"EmpLatitude":51.3353899,"EmpLongitude":-0.742856,"EmpNo":39424,"Insitution":null,"PlaceName":"Camberley","TalentPoolLicences":[{"Membership":[{"Identity":39424,"Name":"Weydon Secondary School"}],"TalentPoolType":1},{"Membership":[{"Identity":2,"Name":"North East Hampshire"},{"Identity":4,"Name":"Surrey"},{"Identity":8,"Name":"Surrey"}],"TalentPoolType":3}]},"FacetFilters":{"LastActivity":0,"LocationFilterType":1,"fullorparttime_pex":null,"religion":null,"soughtphase_swk":null,"soughtrole_swk":null,"soughtsubject_swk":null},"LookingFor":null,"OrderBy":null,"PageIndex":1,"PageSize":40} 

Wie kann ich den Identitätswert aus von ihm zu erhalten, die in EmployerDetails sitzt. Ich habe versucht, aber es wird nie drinnen, wenn Bedingung:

for (var i = 0; i < localStorage.length; i++) {  
if (localStorage.getItem(localStorage.key(i)) === 'EmployerDetails') 
      { console.log('hello'); } 
} 

Hilfe bitte hier?

+0

Können Sie den Code veröffentlichen, in dem Sie die Elemente auf localstorage setzen? –

Antwort

0

Wie Sie für verschachtelten Schlüssel sind zuerst müssen Sie das Objekt packen und müssen auch zu JSON mit JSON.parse analysieren, dann können Sie fortfahren, wie wir im Fall auf normalen Javascript-Objekt tun

localStorage.getItem('signup-prefs') 

das gibt mir einen String mit meinem Objekt

""name":"google","oauth_version":"2.0","oauth_server":"https://accounts.google.com/o/oauth2/auth","openid":"","username":""}" 

Nachdem es Parsen wir das Objekt bekommen und jetzt können wir die gewünschte Eigenschaft finden.

JSON.parse(localStorage.getItem('signup-prefs'))

Object {name: "google", oauth_version: "2.0", oauth_server: "https://accounts.google.com/o/oauth2/auth", openid: "", username: ""} 

für Ihr Problem kommt

sagen Lassen Sie Ihre Mitarbeiter Informationen wie dieses ist ich hier nicht alle Felder bin zeigen.

var empData = {"EmployerDetails":Distance":30,"EmpLatitude":51.33538}} 

Dann setzen Sie den Schlüssel wie dieser

localstorage.setItem('empData', JSON.stringify(empData)) 

nun die String-Objekt mit Schlüssel Parse es zu Json erhalten und die gewünschte Taste aus dem Objekt Schleife über sie finden die result.I Hafen zu bekommen Ich habe es getestet, aber ich bin zuversichtlich, dass es funktionieren wird. Lass es mich wissen, wenn nicht.

for (var i = 0; i < localStorage.length; i++) { 
    if (localStorage.key(i) === 'empData') { 

     // Parse the string to json 

     var empData = JSON.parse(localStorage.getItem('empData')); 

     // get all the keys 
     var keys = Object.keys(empData); 

     for (var idx = 0; idx < keys.length; idx++) { 
      // find the desired key here 
      if (keys[idx] == 'EmployeeDetails') { 
       var empDetails = empData[keys[idx]] 
      } 
     } 
    } 
} 

Eine wichtige Sache über Ihren Code ist diese Aussage localStorage.key(i)) === 'EmployerDetails' gibt entweder wahr oder falsch und Schreiben wie dieses if(localStorage.getItem(localStorage.key(i)) === 'EmployerDetails') nie, weil man mit diesem Namen eine beliebige Taste haben nicht ausgeführt wurde (In der Praxis sollten wir nie benutze Schlüsselwort als Schlüssel).

+0

Cheers Körper habe ich es funktioniert. Danke für Ihre Hilfe. Es wäre jedoch gut, wenn Sie Ihren bevorzugten Ansatz kennen, um den passenden Wert zu erhalten, falls vorhanden. – user8427641

+0

Es gibt mehrere Möglichkeiten, wie Sie einen Object.keys machen können. Warte, lass mich den Code hier hinzufügen .. –

0

Haben Sie versucht, es in das Json-Objekt zu konvertieren und dann die Werte aus?

+0

ist bereits in JSON – user8427641

Verwandte Themen