В чем отличие JSON объекта от литерала объекта?
JSON - это не объект, это формат записи строки, который может быть легко и просто трансформирован в объект. По сути, ваш первый пример лучше всего записать действительно как строку, так: '{"a":"5","b":"6"}'
Если же ваш вопрос о том, в чем разница в записи названий ключей в кавычках и без кавычек, то это очень просто. JS изобилует спец. символами, зарезервированными словами и прочими ограничениями. По этому, записывая имя ключа, нужно всегда держать это в уме:// не валидно
var x = {
	Hey man !: 10
};

// валидно
var x = {
	"Hey man !": 10
};
В старых браузерах были проблемы при использовании зарезервированных слов вроде switch или class в качестве ключей и т.п.
Заключение имени ключа в кавычки - гарантированный способ получить корректный результат (почти, конечно нужно следить чтобы внутренние кавычки были закодированы).
JSON object это просто коллекция ключ (string) : значение (string). Данные будут передаваться исключительно как строковые. Второе же, что-то вроде свойство объекта - значение. Подробнее описано тут