Tìm kiếm trang web

javascript - Làm thế nào để lấy giá trị của đối tượng nếu tên của nó chứa dấu chấm?


Tôi có một mảng rất đơn giản (vui lòng tập trung vào đối tượng có "points.bean.pointsBase" làm khóa):

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 "points.bean.pointsBase" bằng một cái gì đó không có dấu chấm trong tên - mọi thứ hoạt động.

Tuy nhiên, tôi không thể thay đổi tên này thành bất cứ thứ gì khác mà không có dấu chấm, nhưng tôi cần lấy một giá trị? Có tùy chọn nào để nhận được nó không?

Câu trả lời #1

Những gì bạn muốn là:

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

Trong JavaScript, bất kỳ trường nào bạn có thể truy cập bằng toán tử . , bạn cũng có thể truy cập bằng [] với phiên bản chuỗi của tên trường.

Câu trả lời #2

Trong JavaScript, các thuộc tính của đối tượng có thể được truy cập bằng toán tử . hoặc bằng cách lập chỉ mục mảng kết hợp sử dụng []. Ví dụ, object.property tương đương với object["property"]

cái này nên hiệu quả

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

Câu trả lời #3

Thử ["points.bean.pointsBase"]

Câu trả lời #4

Nếu khóa/tên của đối tượng json chứa dấu chấm......! như

var myJson = {"my.name":"vikas","my.age":27}

Bạn có thể truy cập than như

myJson["my.name"]
myJson["my.age"]

Bài viết liên quan