A column that contains JSON text is still a VARCHAR. PARSE_JSON converts a valid document into VARIANT so you can read paths, inspect its type or flatten an array. Casting the whole text to STRING doesn't parse it. Once parsed, each path still returns VARIANT until you cast the selected field to a SQL type.
Malformed documents need a separate decision. TRY_PARSE_JSON returns NULL for text it can't parse, which lets you retain rejected input for investigation. A missing key and a malformed document can both lead to NULL output, so inspect the parsed document before treating a missing field as a valid blank. The exercises create a text landing table from the course's raw documents and keep the original file name for traceability.