2010-04-05 44 views
66

Tôi có một mảng JSON rất đơn giản (xin tập trung vào "points.bean.pointsBase" đối tượng):Cách lấy giá trị đối tượng JSON nếu tên của nó chứa dấu chấm?

var mydata = 
{"list": 
    [ 
    {"points.bean.pointsBase": 
     [ 
     {"time": 2000, "caption":"caption text", duration: 5000}, 
     {"time": 6000, "caption":"caption text", duration: 3000} 
     ] 
    } 
    ] 
}; 

// Usually we make smth like this to get the value: 
var smth = mydata.list[0].points.bean.pointsBase[0].time; 
alert(smth); // should display 2000 

Nhưng, thật không may, nó không hiển thị gì cả.
Khi tôi thay đổi "points.bean.pointsBase" để smth mà không có dấu chấm trong tên của nó - mọi thứ đều hoạt động!

Tuy nhiên, tôi không thể thay đổi tên này thành bất kỳ điều gì khác mà không có dấu chấm, nhưng tôi cần lấy giá trị ?!
Có tùy chọn nào để tải xuống không?

Trả lời

145

gì bạn muốn là:

var smth = mydata.list[0]["points.bean.pointsBase"][0].time; 

Trong JavaScript, bất kỳ lĩnh vực bạn có thể truy cập bằng cách sử dụng. toán tử, bạn có thể truy cập bằng cách sử dụng [] với một phiên bản chuỗi của tên trường.

10

Hãy thử ["points.bean.pointsBase"]

19

trong javascript, các thuộc tính đối tượng có thể truy cập được. toán tử hoặc với chỉ mục mảng kết hợp bằng []. I E. object.property tương đương với object["property"]

này nên làm các trick

var smth = mydata.list[0]["points.bean.pointsBase"][0].time; 
1

Chỉ cần tận dụng giải pháp cập nhật hãy thử sử dụng tiện ích lodash https://lodash.com/docs#get

+0

Way để quay nó trong. Làm thế nào về trích dẫn một phương pháp thực tế thay vì chỉ dán một liên kết đến một thư viện thường được sử dụng? – benmar

+0

@benmar ông đã làm, _.get là phương pháp –

Các vấn đề liên quan