Tôi đang cố gắng xây dựng một số API
yên tĩnh và tôi đang cố gắng cách sắp xếp dữ liệu JSON
theo số HTTP query string
.Cách chuẩn hóa để tuần tự hóa JSON thành chuỗi truy vấn?
Có một số các đối số bắt buộc và không bắt buộc mà cần phải được thông qua trong yêu cầu, ví dụ như (biểu diễn dưới dạng một đối tượng JSON dưới đây):
{
"-columns" : [
"name",
"column"
],
"-where" : {
"-or" : {
"customer_id" : 1,
"services" : "schedule"
}
},
"-limit" : 5,
"return" : "table"
}
tôi cần phải hỗ trợ một số khác nhau của khách hàng khác nhau để Tôi đang tìm một cách tiêu chuẩn hóa để chuyển đổi đối tượng json này thành một chuỗi truy vấn. Có cái nào không, và nó trông như thế nào?
Một giải pháp thay thế khác là cho phép người dùng chỉ cần truyền dọc đối tượng json trong nội dung thư, nhưng tôi đọc rằng tôi nên tránh nó (HTTP GET with request body).
Mọi suy nghĩ?
Chỉnh sửa để làm rõ:
Bảng liệt kê như thế nào một số ngôn ngữ khác nhau mã hóa các đối tượng json đưa ra ở trên:
jQuery
sử dụng$.param
: -columns [] = tên & -columns [] = cột & -where [-or] [customer_id] = 1 & -where [-or] [services] = schedule & -limit = 5 & return = columnPHP
sử dụnghttp_build_query
: -columns [0] = tên & -columns [1] = cột & -where [-Hoặc] [customer_id] = 1 & -where [-Hoặc] [Dịch vụ] = lịch & -Giới hạn = 5 & lợi nhuận = cộtPerl
sử dụngURI::query_form
: -columns = tên & -columns = cột & -where = HASH (0x59d6eb8) & -Giới hạn = 5 & trở lại = cộtPerl
sử dụngcomplex_to_query
: -columns: 0 = tên & -columns: 1 = cột & -limit = 5 & -where.-or.customer_id = 1 & -where.-or.services = lịch & trở lại = cột
jQuery và PHP là rất giống nhau. Perl sử dụng complex_to_query cũng khá giống với chúng. Nhưng không ai nhìn giống hệt nhau.
tại sao không chỉ sử dụng yêu cầu POST? – akonsu
kiểm tra xem điều này có hữu ích không, http://api.jquery.com/jQuery.param/ – Jubair
@akonsu: Bởi vì tôi đang cố gắng tìm nạp (GET) một số dữ liệu chứ không phải POST dữ liệu mới. – Andreas