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

Doniyor
quelle
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/

Schwan
quelle
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);
});
NaYaN
quelle
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);
onihime
quelle
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);
})();

quelle
2

Ein einfacher Ansatz anstelle von JSON.parse

 success: function(response){
     var resdata = response;
     alert(resdata['name']);
}
wackelig
quelle
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 );

Kamil Kiełczewski
quelle
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;
}
Monzur
quelle
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]);
}
Chandan Kumar
quelle