เหตุผลที่แท้จริงว่าทำไมคีย์ JSON ควรอยู่ในเครื่องหมายคำพูดขึ้นอยู่กับความหมายของตัวระบุของ ECMAScript 3
ไม่สามารถใช้คำสงวนเป็นชื่อคุณสมบัติใน Object Literals โดยไม่มีเครื่องหมายคำพูดตัวอย่างเช่น:
({function: 0}) 
({if: 0}) 
({true: 0}) 
แม้ว่าคุณจะใช้เครื่องหมายคำพูดชื่อคุณสมบัติจะถูกต้อง:
({"function": 0}) 
({"if": 0}) 
({"true": 0}) 
Crockford ของตัวเองอธิบายไว้ในการพูดคุยนี้พวกเขาต้องการรักษามาตรฐาน JSON ให้เรียบง่ายและไม่ต้องการมีข้อ จำกัด ด้านความหมายทั้งหมด:
  ....
  
  นั่นคือตอนที่เราค้นพบปัญหาชื่อที่ไม่ได้อ้างถึง ปรากฎว่า ECMA Script 3 มีนโยบายตีคำสงวน คำสงวนจะต้องถูกยกมาในตำแหน่งสำคัญซึ่งเป็นเรื่องที่น่ารำคาญจริงๆ เมื่อฉันเริ่มกำหนดสิ่งนี้ให้เป็นมาตรฐานฉันไม่ต้องการให้คำสงวนทั้งหมดอยู่ในมาตรฐานเพราะมันจะดูโง่จริงๆ
  
  ตอนนั้นฉันพยายามโน้มน้าวผู้คนใช่คุณสามารถเขียนแอปพลิเคชันใน JavaScript มันใช้งานได้จริงและเป็นภาษาที่ดี ฉันไม่อยากจะพูดในเวลาเดียวกัน: และดูสิ่งที่โง่เขลาจริงๆที่พวกเขาทำ! ดังนั้นฉันจึงตัดสินใจว่าเรามาพูดถึงคีย์แทน 
  แบบนั้นเราไม่ต้องบอกใครหรอกว่ามันตีกันยังไง
  
  นั่นเป็นเหตุผลที่จนถึงทุกวันนี้คีย์จึงถูกยกมาใน JSON
  
  ...
ECMAScript 5th Edition Standard แก้ไขสิ่งนี้ในการใช้งาน ES5 แม้กระทั่งคำสงวนก็สามารถใช้ได้โดยไม่ต้องใส่เครื่องหมายคำพูดทั้งในตัวอักษร Object และการเข้าถึงของสมาชิก ( obj.functionตกลงใน ES5)
สำหรับการบันทึกมาตรฐานนี้ถูกนำไปใช้ในปัจจุบันโดยผู้จำหน่ายซอฟต์แวร์คุณสามารถดูว่าเบราว์เซอร์ใดรวมคุณลักษณะนี้ไว้ในตารางความเข้ากันได้นี้ (ดูคำสงวนเป็นชื่อคุณสมบัติ )