JSON represents data as nested objects, arrays, strings, numbers and booleans in plain text, so a reading such as {"temp": 21.5, "unit": "C"} can be understood by a person and parsed by every language and platform. That universality is why it dominates REST APIs, cloud IoT platforms and a great many MQTT payloads, and why it is the easiest choice when a team is starting out.
The downsides matter on constrained links. Field names are repeated in every message, numbers are sent as text and there is no schema, so a payload can be several times larger than its binary equivalent and parsing costs CPU and memory on a microcontroller. For LPWAN or cellular IoT, teams usually switch to CBOR or Protocol Buffers while keeping JSON at the application layer after the gateway. See MQTT explained.
Part of the IoT Glossary. Spotted an error or a missing term? Tell us.