Làm cách nào để lấy khóa và giá trị json trong javascript?


81

Tôi đang trả lại một json như hình dưới đây

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

Tôi đang cố gắng lấy từng khóa và giá trị của phần tử:

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

Tôi đang undefinedcảnh giác. TẠI SAO? Tôi đã thử data.jobtitel, tôi đã thử vòng lặp nhưng không thành công ..


đầu tiên u cần phải chuyển đổi json đến mảng sau đó phải cố gắng data.jobtitel
thiên nga

JSON là chuỗi và u muốn truy cập đó mà sau đó u phải có để chuyển đổi ...
thiên nga

@swan, $ .parseJSON không phải lúc nào cũng có sẵn trong mọi trình duyệt .. phải làm gì?
doniyor

1
nếu u thêm jquery sau đó $ .parseJSON sẽ làm việc ... nếu không u phải sử dụng JSON javascript tinh khiết chuyển đổi JSON.eval (jsonstring)
thiên nga

@swan, hoàn hảo! bây giờ nó đang làm việc
doniyor

Câu trả lời:


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

Kiểm tra jsfiddle này

Kể từ jQuery 3.0 , $ .parseJSON không được dùng nữa. Để phân tích cú pháp các chuỗi JSON, hãy sử dụng phương thức JSON.parse gốc để thay thế.

Nguồn: http://api.jquery.com/jquery.parsejson/


2
Điều này không đủ tài liệu. Khả năng sử dụng json ['KeyAsString']. Thực sự tuyệt vời. Cảm ơn bạn.
Android334

Làm cách nào để chuyển Entwickler đến jobtitel? Có anythind native hay tôi phải viết mã của riêng mình?
dGRAMOP

22

bạn đã phân tích cú pháp Jsonchuỗi đó bằng cách sử dụngJSON.parse()

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

Đơn giản hóa: JSON.parse (data) .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
Đây là cách bạn thực hiện trong javascript.
Ishara Amarasekera

4

http://jsfiddle.net/v8aWF/

Làm việc một cách khó khăn. Hãy kiểm tra nó ra

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

2

Một cách tiếp cận đơn giản thay vì sử dụng JSON.parse

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

1

Có vẻ như nó datakhông chứa những gì bạn nghĩ - hãy kiểm tra nó.

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

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


0

Bạn có thể sử dụng giải pháp sau để nhận khóa và giá trị JSON trong JavaScript:

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

1
Mặc dù đoạn mã này có thể là giải pháp, nhưng bao gồm phần giải thích thực sự giúp cải thiện chất lượng bài đăng của bạn. Hãy nhớ rằng bạn đang trả lời câu hỏi cho người đọc trong tương lai và những người đó có thể không biết lý do cho đề xuất mã của bạn.
Narendra Jadhav

0

Để lấy chìa khóa

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

Để nhận được giá trị.

var a = {"a":"1","b":"2"};
var values = []
for(var k in a){
  values.push(a[k]);
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.