Tôi ngạc nhiên json.length
đang trả lại bất kỳ điều gì; chuỗi JSON đó không hợp lệ. Các dấu ngoặc nhọn ngoài cùng ({}
) biểu thị một đối tượng, phải chứa khóa và giá trị, nhưng nó chỉ chứa một giá trị (mảng, không có khóa).
Nếu bạn loại bỏ các dấu ngoặc nhọn, nó sẽ hoạt động chính xác. Bạn đã đặt chúng ở đó, có lẽ vì bạn đã nhìn thấy nó được thực hiện? Nếu vậy, bạn muốn dấu ngoặc đơn (()
), không phải dấu ngoặc nhọn.
Lưu ý rằng việc sử dụng eval
trên dây JSON là không an toàn, bạn muốn sử dụng một bộ giải mã JSON mà không sử dụng eval
(như json2.js, trong đó sử dụng eval
, nhưng chỉ sau khi rất cẩn thận đảm bảo nó an toàn để làm như vậy, sửa đổi nó nếu cần), để an toàn tối ưu. Các dấu ngoặc giúp, nhưng chúng không phải là một giải pháp hoàn chỉnh.
Nguồn
2010-03-12 15:23:19
nên sử dụng hasOwnProperty: 'for (var x trong người) if (persons.hasOwnProperty (x)) đếm ++; ' – vsync