Any non-trivial Elm app will have a need to translate between JSON and Elm, as the Elm app communicates with JavaScript libraries through ports, or consumes JSON from a server API.
Elm has the important and somewhat intimidating concept of "decoders" that translate dynamically typed JSON into statically typed Elm values. This course will teach you to write your decoders and tackle many common decoding scenarios, including optional and nullable fields, decoding JSON into Elm union types, and decoding recursive structures.