Оскільки ви можете поставити крапкові позначення "parent.child" і вам не потрібно ставити parent ["child"], що також є дійсним і корисним, я б сказав, що обидва способи є технічно прийнятними. Усі парсери повинні робити обидва способи просто чудово. Якщо вашому аналізатору не потрібні лапки на клавішах, то, ймовірно, краще не ставити їх (економить місце). Має сенс називати їх рядками, тому що це вони є, а оскільки квадратні дужки дають вам можливість використовувати значення для клавіш, це абсолютно не має сенсу. У Json ви можете поставити ...
>var keyName = "someKey";
>var obj = {[keyName]:"someValue"};
>obj
Object {someKey: "someValue"}
просто чудово без проблем, якщо вам потрібне значення для ключа, і жодне з цитованих не буде працювати, так що якщо це не так, ви не можете, так що вам не буде так "вам не потрібні лапки на клавішах". Навіть якщо правильно сказати, що вони технічно струнні. Логіка та використання аргументують інше. Також він офіційно не виводить Object {"someKey": "someValue"} для obj у нашому прикладі запускається з консолі будь-якого браузера.