Jak uzyskać klucz JSON i wartość w javascript?

83

Zwracam plik json, jak pokazano poniżej

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

Próbuję uzyskać klucz i wartość każdego elementu:

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

Jestem undefinedw pogotowiu. CZEMU? Próbowałem data.jobtitel, próbowałem pętli, ale bez powodzenia.

doniyor
źródło
najpierw musisz przekonwertować ten plik json na tablicę, a następnie spróbować data.jobtitel
łabędź
JSON to ciąg znaków i chcesz tam uzyskać dostęp, a następnie musisz przekonwertować ...
łabędź
@swan, $ .parseJSON nie zawsze jest dostępne w każdej przeglądarce .. co robić?
doniyor
1
jeśli dodasz jquery, to $ .parseJSON zadziała ... w przeciwnym razie musisz użyć czystego konwertera JSON JavaScript JSON.eval (jsonstring)
łabędź
@swan, doskonale! teraz to działa
doniyor

Odpowiedzi:

149
//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'])

Sprawdź to jsfiddle

Począwszy od jQuery 3.0 , $ .parseJSON jest przestarzałe. Aby przeanalizować ciągi JSON, użyj natywnej metody JSON.parse.

Źródło: http://api.jquery.com/jquery.parsejson/

łabędź
źródło
2
Nie jest to wystarczająco udokumentowane. Możliwość korzystania z json ['KeyAsString']. Naprawdę świetnie. Dziękuję Ci.
Android334,
Jak zmienić Entwickler na tytuł pracy? Czy jest coś natywnego, czy muszę napisać własny kod?
dGRAMOP
22

musisz przeanalizować ten Jsonciąg używającJSON.parse()

..
}).done(function(data){
    obj = JSON.parse(data);
    alert(obj.jobtitel);
});
NAYaN
źródło
Uproszczone: JSON.parse (dane) .jobtitle
Jonas
12
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
źródło
1
Tak to się robi w javascript.
Ishara Amarasekera
4

http://jsfiddle.net/v8aWF/

Wypracowałem skrzypce. Sprawdź to

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

źródło
2

Proste podejście zamiast używania JSON.parse

 success: function(response){
     var resdata = response;
     alert(resdata['name']);
}
ricky
źródło
1

Wygląda na to, że datanie zawiera tego, co myślisz, że zawiera - sprawdź to.

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

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

Kamil Kiełczewski
źródło
0

Możesz użyć następującego rozwiązania, aby uzyskać klucz JSON i wartość w JavaScript:

var dt = JSON.stringify(data).replace('[', '').replace(']', '');
if (dt) {
  var result = jQuery.parseJSON(dt);
  var val = result.YOUR_OBJECT_NAME;
}
Monzur
źródło
1
Chociaż ten fragment kodu może być rozwiązaniem, dołączenie wyjaśnienia naprawdę pomaga poprawić jakość Twojego posta. Pamiętaj, że odpowiadasz na pytanie do czytelników w przyszłości, a osoby te mogą nie znać powodów, dla których zaproponowałeś kod.
Narendra Jadhav
0

Za zdobycie klucza

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

Aby uzyskać wartość.

var a = {"a":"1","b":"2"};
var values = []
for(var k in a){
  values.push(a[k]);
}
Chandan Kumar
źródło