JSON указано в RF C 8259 (с использованием EBNF) и ECMA-404 (с использованием железнодорожных схем). Поскольку они оба определяют одну и ту же грамматику, то какая из двух вы используете, не имеет значения; go для того, кого ты придумал проще.
JSON анализ довольно прост. HTML, с другой стороны, является огромным проектом, который усложняется отсутствием версионного авторитетного стандарта, что делает его немного движущейся целью.
HTML парсинг, как в настоящее время определяется «Живой стандарт» - это процедура, которая, вероятно, не может быть заключена в контекстно-свободную грамматику. Никаких реальных попыток использовать грамматические описания в стандарте не делается, хотя можно извлечь хотя бы лексическую грамматику, если игнорировать разделы, касающиеся обработки лексических ошибок.
Конечно, вы могли бы написать синтаксический анализатор для корректного подмножества, но этот анализатор может плохо справляться со многими документами "HTML", которые вы хотите обработать. Лично для учебы я бы предложил попробовать свои силы на XML. (Также см. XML Пространства имен ].