EDIT:entry.content.$t
là trường sai để truy cập các ô riêng lẻ. mục nhập.gsx $ [tiêu đề cột ô] là phương pháp chính xác. Xin lỗi và cảm ơn vì đã giúp giải quyết vấn đề này.Phân tích cú pháp JSON từ Bảng tính Google
Câu hỏi gốc:
Tôi đang cố gắng phân tích cú pháp JSON data from a Google Spreadsheet. Vấn đề là, trường mục nhập trả về một chuỗi là toàn bộ hàng của bảng tính — nhưng xuất hiện dưới dạng đối tượng không đúng định dạng. Những người khác phân tích cú pháp dữ liệu này như thế nào? Dưới đây là những gì các nút nội dung trông giống như:
"content":
{
"type" :"text",
"$t" :"location: 780 Valencia St San Francisco, CA 94110,
phonenumber: (555) 555-5555,
website: http://www.780cafe.com,
latitude: 37.760505,
longitude: -122.421447"
},
Nhìn cẩn thận, lĩnh vực $t
trả toàn bộ một chuỗi đó là một hàng trong bảng tính của Google. Vì vậy, entry.content.$t
trả về một chuỗi: location: 780 Valencia St San Francisco, CA 94110, phonenumber: (555) 555-5555...
Tiếp tục làm trầm trọng thêm vấn đề này là một số ô trong bảng tính có dấu phẩy (như địa chỉ) không bị thoát hoặc trích dẫn. Một cái gì đó như
jQuery.parseJSON(entry.content.$t)
hoặc
eval('('+ entry.content.$t + ')')
ném một lỗi. Tôi cho rằng regex là một lựa chọn, nhưng tôi hy vọng những người khác có thể đã giải quyết điều này một cách thanh lịch hơn. Cảm ơn đã giúp đỡ!
gì được yêu cầu bạn sử dụng để lấy dữ liệu JSON? Bạn có sử dụng loại ô hoặc danh sách loại không? (xem http://code.google.com/apis/gdata/samples/spreadsheet_sample.html) – HBP
Nhìn vào các ví dụ hơn nữa, tôi nghĩ bạn đang làm điều gì đó sai - trong cách bạn yêu cầu JSON hoặc trong chính dữ liệu bảng tính. Từ những gì tôi có thể thấy, bạn không nên nhận toàn bộ hàng dưới dạng trường văn bản; bạn sẽ nhận được một sự kết hợp của các đối tượng và mảng trong dữ liệu của bạn để biểu thị các hàng và cột. –
Doh! Tôi đã hiểu rồi. Bạn hiểu rồi. Tôi đã giải nén nút sai. Rõ ràng, nó trả về các đối tượng riêng lẻ cho mỗi ô. Lỗi của tôi. THanks rất nhiều cho việc đánh bắt này. – jrue