Q1: При визначенні об'єктних літералів у javascript, ключі можуть містити лапки чи ні. Немає різниці, окрім того, що лапки дозволяють вам вказати певні ключі, які призвели до того, що інтерпретатор не зможе розібратися, якщо ви спробували їх голими. Наприклад, якщо ви хочете ключ, який був лише знаком оклику, вам знадобляться цитати:
a = { "!": 1234 } // Valid
a = { !: 1234 } // Syntax error
Однак у більшості випадків ви можете опускати лапки навколо клавіш на об'єктних літералах.
Q2: JSON - це буквально рядкове представлення. Це просто струна. Отже, врахуйте це:
var testObject = { hello: "world" }
var jSonString = JSON.stringify(testObject);
Оскільки testObjectце реальний об'єкт, ви можете викликати на ньому властивості та робити все, що можна зробити з об’єктами:
testObject.hello => "world"
З іншого боку, jsonStringце лише рядок:
jsonString.hello => undefined
Зауважте ще одну відмінність: У JSON всі ключі повинні бути цитовані. Це контрастує з об'єктними літералами, де лапки, як правило, можуть бути опущені відповідно до мого пояснення в Q1.
Q3. Ви можете проаналізувати рядок JSON, використовуючи JSON.parse, і це, як правило, найкращий спосіб зробити це (якщо це надає браузер або структура). Ви також можете просто використовувати, evalоскільки JSON є дійсним кодом JavaScript, але попередній метод рекомендується з ряду причин (в eval є багато неприємних проблем, пов'язаних з ним).