2011-11-12 54 views
18

Tôi có json sau:json và mảng trống

{ 
    "users": 
    [{ 
     "user": 
     { 
     "user_id" :"a11uhk22hsd3jbskj", 
     "username" :"tom", 
     "location" : null 
     } 
    }] 
} 

tôi nhận json này để đáp ứng với yêu cầu một api. Nhìn vào tài liệu cho api này, vị trí được coi là một mảng (chứa geodata, vĩ độ, kinh độ, vv).
Bây giờ câu hỏi đặt ra là: có lỗi trong json? Tôi có nghĩa là, vị trí không có vẻ, với tôi, là một mảng, hoặc có thể đại diện cho một mảng null theo cách đó? và nếu có sự khác biệt giữa những gì là:

"location" : null 
"location" : [] 

Cảm ơn trước

Trả lời

10

null là một legal value (and reserved word) in JSON, nhưng một số môi trường không có một "NULL" đối tượng (như trái ngược với một giá trị NULL) và do đó có thể không thể hiện chính xác JSON null. Vì vậy, đôi khi chúng sẽ đại diện cho nó như một mảng trống.

Cho dù null là giá trị pháp lý trong yếu tố cụ thể của API cụ thể đó hoàn toàn phụ thuộc vào nhà thiết kế API.

11
"location" : null // this is not really an array it's a null object 
"location" : [] // this is an empty array 

Dường như API này trả về giá trị rỗng khi không xác định vị trí - thay vì trả về một mảng trống, không quá bất thường - nhưng họ sẽ cho bạn biết liệu họ có thực hiện việc này hay không.

2

Phiên bản đầu tiên là đối tượng rỗng trong khi thứ hai là đối tượng mảng với các phần tử không.

Ví dụ: Null có thể có nghĩa là không có vị trí nào cho người dùng đó, không có vị trí nào được yêu cầu hoặc một số hạn chế được áp dụng. Khó có thể nói không có tham chiếu đến API.