Поскольку вы можете поставить пунктирную нотацию parent.child и вам не нужно указывать parent ["child"], который также является допустимым и полезным, я бы сказал, что оба способа технически приемлемы. Все парсеры должны работать в обоих направлениях. Если вашему парсеру не нужны кавычки на ключах, то, вероятно, лучше не ставить их (экономит место). Имеет смысл называть их строками, потому что это то, чем они являются, и, поскольку квадратные скобки дают вам возможность использовать значения для ключей, по сути, имеет смысл не делать этого. В Json вы можете положить ...
>var keyName = "someKey";
>var obj = {[keyName]:"someValue"};
>obj
Object {someKey: "someValue"}
просто без проблем, если вам нужно значение для ключа, и ни одна из кавычек не будет работать, поэтому, если это не так, вы не сможете, так что вы не будете так «вам не нужны кавычки для ключей». Даже если правильно сказать, что они технически струны. Логика и использование утверждают иначе. Он также официально не выводит Object {"someKey": "someValue"} для объекта obj в нашем примере, запускаемого из консоли любого браузера.