В то время как официальная спецификация для JSON указывает просто на то, что символы должны предоставляться в качестве идентификатора поля, когда вы анализируете ваш JSON в объект Javascript, вы теперь попадаете под ограничения идентификатора Javascript.
В спецификации Javascript идентификатор может начинаться с буквы, подчеркивания или $. Последующие символы могут быть любыми буквами, цифрами, подчеркиванием или $.
Таким образом, в основном # допустимо в спецификации JSON, но не в Javascript.