Як отримати ключ і значення json у javascript?


83

Я повертаю json, як показано нижче

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

Я намагаюся отримати ключ і значення кожного елемента:

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

Я отримую undefinedпопередження. ЧОМУ? Я спробував data.jobtitel, я спробував цикл, але успіху не було ..


спочатку вам потрібно перетворити цей json на масив, потім потрібно спробувати data.jobtitel
лебідь

JSON - це рядок, і ви хочете отримати там доступ, який тоді вам доведеться конвертувати ...
лебідь

@swan, $ .parseJSON не завжди доступний у кожному браузері .. що робити?
doniyor

1
якщо ви додасте jquery, тоді $ .parseJSON буде працювати ... інакше вам доведеться використовувати чистий конвертер JSON javascript JSON.eval (jsonstring)
лебідь

@swan, ідеально! зараз це працює
донійор

Відповіді:


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

Перевірте цей jsfiddle

Станом на jQuery 3.0 , $ .parseJSON застаріло. Для синтаксичного аналізу рядків JSON використовуйте власний метод JSON.parse.

Джерело: http://api.jquery.com/jquery.parsejson/


2
Це недостатньо задокументовано. Можливість використовувати json ['KeyAsString']. Справді чудово. Дякую.
Android334 24.03.14

Як я можу перетворити Entwickler на jobtitel? Чи є щось рідне, чи я повинен написати свій власний код?
dGRAMOP

22

ви проаналізували цей Jsonрядок за допомогоюJSON.parse()

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

Спрощено: JSON.parse (дані) .jobtitle
Йонас

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

1
Ось як ви це робите в javascript.
Ішара Амарасекера

4

http://jsfiddle.net/v8aWF/

Попрацював скрипку. Перевірте це

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

2

Простий підхід замість використання JSON.parse

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

1

Схоже, dataне містить того, що, на вашу думку, містить - перевірте.

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

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


0

Ви можете використати таке рішення, щоб отримати ключ і значення JSON у JavaScript:

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

1
Хоча цей фрагмент коду може бути рішенням, включаючи пояснення, він дійсно допомагає поліпшити якість вашої публікації. Пам’ятайте, що ви будете відповідати на запитання для читачів у майбутньому, і ці люди можуть не знати причин вашої пропозиції коду.
Нарендра Ядхав,

0

Для отримання ключа

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

Для отримання вартості.

var a = {"a":"1","b":"2"};
var values = []
for(var k in a){
  values.push(a[k]);
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.