Tôi đang tạo một API trả về kết quả dưới dạng JSON. Có thực hành tốt nhất hiện tại cho dù chúng ta nên bao gồm các khóa trong kết quả khi giá trị là null? Ví dụ:JSON có nên bao gồm các giá trị rỗng không
{
"title":"Foo Bar",
"author":"Joe Blow",
"isbn":null
}
hoặc
{
"title":"Foo Bar",
"author":"Joe Blow"
}
Kể từ thứ hai là nhỏ hơn tôi đang nghiêng về phía phong cách này, nhưng tôi không chắc chắn nếu có một phong cách ưa thích hay không. Từ quan điểm của khách hàng, có vẻ như cả hai kiểu đều có chức năng tương đương nhau. Bất kỳ ưu hoặc khuyết điểm nào đối với mỗi người?
Không thể trả lời chính xác điều này. Câu trả lời đúng tùy thuộc vào yêu cầu của ứng dụng. OP đã chọn câu trả lời phù hợp với yêu cầu của mình. Nếu ứng dụng của bạn cần có khả năng phân biệt giữa việc biết nếu "isbn" là null nếu "isbn" có thể không được gửi từ máy chủ vì một lý do khác, bạn cần phải bao gồm nó. – Jacob
@Jacob Mặc dù tôi không nói, ý định của tôi với câu hỏi này là JSON "đầy đủ" đại diện cho phản hồi đã được trả về. Khi một khách hàng có thể giả định rằng dường như không có sự khác biệt về chức năng giữa hai cách tiếp cận.Nếu API có chọn lọc không trả lại khóa/giá trị thì có, nó sẽ tạo ra sự khác biệt lớn về cách tiếp cận đã được thực hiện. – jjathman
lợi ích của biểu diễn đầu tiên là lược đồ đối tượng được giữ nguyên, sự hiện diện của thuộc tính không rõ ràng dựa trên dữ liệu. ở định dạng thứ hai, thông tin này bị mất. JSON spec như vậy không bắt buộc hoặc định dạng AFAIK –