null เทียบกับคีย์ที่ขาดหายไปในการตอบสนอง REST API [ปิด]


40

พูดในแอปพลิเคชันของฉันผู้ใช้บางรายให้นามสกุลกับเรา ในการตอบสนอง REST API ร่างกายที่ต้องการ:

ด้วยค่า "null":

{"firstName": "Bob",
 "lastName": null}

หรือคีย์ที่หายไป:

{"firstName": "Bob"}

คำตอบ:


31

พิจารณาลบค่าว่างหรือค่าว่าง

หากคุณสมบัติเป็นทางเลือกหรือมีค่าว่างหรือเป็นค่าว่างให้ลองปล่อยคุณสมบัติจาก JSON ยกเว้นว่ามีเหตุผลเชิงความหมายที่ชัดเจนสำหรับการมีอยู่

{
  "volume": 10,

  // Even though the "balance" property's value is zero, it should be left in,
  // since "0" signifies "even balance" (the value could be "-1" for left
  // balance and "+1" for right balance.
  "balance": 0,

  // The "currentlyPlaying" property can be left out since it is null.
  // "currentlyPlaying": null
}

อ่าน
คู่มือสไตล์ Google เพิ่มเติม- ค่าว่างหรือค่าว่างควรรวมค่า Null
ในการตอบสนอง JSON จาก REST API หรือไม่


ขอบคุณสำหรับลิงค์ Robert ดังนั้นแม้ว่าcurrentlyPlayingจะอยู่ในการตอบกลับไม่ใช่อื่น ๆ มันก็ดีกว่าที่จะให้ลูกค้าตรวจสอบว่ามีกุญแจอยู่หรือไม่แทนที่จะตรวจสอบว่ามันเป็นโมฆะ?
jtmarmon

nullและundefinedมีเกือบความหมายเหมือนกันใน Javascript และคุณสามารถตรวจสอบสำหรับทั้งการใช้if (myProperty == null)
โรเบิร์ตฮาร์วีย์

จริงๆแล้วในกรณีของฉันลูกค้าอาจจะเป็นจาวา, วัตถุประสงค์ -c หรือจาวาสคริปต์ ลิงค์ภายในลิงค์ที่สอง (API-craft) ระบุให้ฉันเห็นว่า null เหมาะกับกรณีการใช้ความหมายของเรา แต่ส่วนใหญ่ฉันควรตัดสินใจและติดมัน: P ขอบคุณอีกครั้ง
jtmarmon

ง่าย: หากแอปพลิเคชันต้องแยกความแตกต่างระหว่างค่าต่าง ๆ เซิร์ฟเวอร์จะต้องระบุค่าต่าง ๆ มิฉะนั้นจะไม่ต้องการและไม่ควรทำ แอพของคุณจำเป็นต้องแยกแยะระหว่างคีย์ที่ไม่มีอยู่หรือไม่คีย์มีสตริงว่างเปล่าเป็นค่าและคีย์มีค่า Null หรือไม่
gnasher729

3
คำตอบในโพสต์นี้อยู่บางเหตุผลที่ดีว่าทำไมคุณไม่ควรเอาเขตข้อมูล null
เดฟใหม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.