Wie bekomme ich json Schlüssel und Wert in Javascript?


81

Ich sende einen JSON zurück, wie unten gezeigt

{"name": "", "skills": "", "jobtitel": "Entwickler", "res_linkedin": "GwebSearch"}

Ich versuche, jeden Elementschlüssel und Wert zu erhalten:

..
}).done(function(data){
    alert(data['jobtitel']);
});

Ich werde undefinedin Alarmbereitschaft. WARUM? Ich habe versucht data.jobtitel, ich habe versucht, Schleife, aber kein Erfolg ..


Zuerst müssen Sie diesen JSON in ein Array konvertieren, dann müssen Sie data.jobtitel
Swan

JSON ist ein String und du willst dort darauf zugreifen, dass du dann konvertieren musst ...
Swan

@swan, $ .parseJSON ist nicht immer in jedem Browser verfügbar. Was tun?
Doniyor

1
Wenn Sie jquery hinzufügen, funktioniert $ .parseJSON ... andernfalls müssen Sie den reinen Javascript-JSON-Konverter JSON.eval (jsonstring) verwenden
Swan

@wan, perfekt! Jetzt funktioniert es
Doniyor

Antworten:


146
//By using jquery json parser    
var obj = $.parseJSON('{"name": "", "skills": "", "jobtitel": "Entwickler", "res_linkedin": "GwebSearch"}');
alert(obj['jobtitel']);

//By using javasript json parser
var t = JSON.parse('{"name": "", "skills": "", "jobtitel": "Entwickler", "res_linkedin": "GwebSearch"}');
alert(t['jobtitel'])

Überprüfen Sie diese jsfiddle

Ab jQuery 3.0 ist $ .parseJSON veraltet. Verwenden Sie zum Analysieren von JSON-Zeichenfolgen stattdessen die native JSON.parse-Methode.

Quelle: http://api.jquery.com/jquery.parsejson/


2
Dies ist nicht ausreichend dokumentiert. Die Möglichkeit, json ['KeyAsString'] zu verwenden. Wirklich toll. Vielen Dank.
Android334

Wie würde ich Entwickler in jobtitel auflösen? Gibt es irgendetwas Eingeborenes oder muss ich meinen eigenen Code schreiben?
dGRAMOP

22

Sie haben diese JsonZeichenfolge mit analysiertJSON.parse()

..
}).done(function(data){
    obj = JSON.parse(data);
    alert(obj.jobtitel);
});

Vereinfacht: JSON.parse (Daten) .jobtitle
Jonas

11
var data = {"name": "", "skills": "", "jobtitel": "Entwickler", "res_linkedin": "GwebSearch"}

var parsedData = JSON.parse(data);
alert(parsedData.name);
alert(parsedData.skills);
alert(parsedData.jobtitel);
alert(parsedData.res_linkedin);

1
So machen Sie es in Javascript.
Ishara Amarasekera

4

http://jsfiddle.net/v8aWF/

Hat eine Geige ausgearbeitet. Probieren Sie es aus

(function() {
    var oJson = {
        "name": "", 
        "skills": "", 
        "jobtitle": "Entwickler", 
        "res_linkedin": "GwebSearch"
    }
    alert(oJson.jobtitle);
})();

2

Ein einfacher Ansatz anstelle von JSON.parse

 success: function(response){
     var resdata = response;
     alert(resdata['name']);
}

1

Es sieht so aus, als ob es datanicht enthält, was Sie denken, dass es enthält - überprüfen Sie es.

let data={"name": "", "skills": "", "jobtitel": "Entwickler", "res_linkedin": "GwebSearch"};

console.log( data["jobtitel"] );
console.log( data.jobtitel );


0

Sie können die folgende Lösung verwenden, um einen JSON-Schlüssel und -Wert in JavaScript abzurufen:

var dt = JSON.stringify(data).replace('[', '').replace(']', '');
if (dt) {
  var result = jQuery.parseJSON(dt);
  var val = result.YOUR_OBJECT_NAME;
}

1
Während dieses Code-Snippet die Lösung sein kann, hilft das Hinzufügen einer Erklärung wirklich, die Qualität Ihres Beitrags zu verbessern. Denken Sie daran, dass Sie die Frage in Zukunft für Leser beantworten und diese Personen möglicherweise die Gründe für Ihren Codevorschlag nicht kennen.
Narendra Jadhav

0

Um den Schlüssel zu bekommen

var a = {"a":"1","b":"2"};
var keys = []
for(var k in a){
  keys.push(k)
}

Um Wert zu bekommen.

var a = {"a":"1","b":"2"};
var values = []
for(var k in a){
  values.push(a[k]);
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.