This is a bit of a simplification. HL7 is the standards body, not the standard itself - which (for everyone else who may not know) is "HL7 v2".
FHIR is an actually-JSON (+XML) health data protocol that is gaining adoption (most recently because of CMS Interoperability and Patient Access Final Rule), so it's not all bad.
Prior to FHIR, there was actually an XML-based HL7 v3 as well. Mercifully, it collapsed under the weight of its own spec and rarely shows up in the wild these days. CDA still survives, but it's much easier to work with and being slowly made obsolete by FHIR resources.
FHIR is a breath of fresh air but it's so kinda worse because while it's great you still need the HL7 parser logic lying around in your code and now a bunch of additional code paths for FHIR
"Lots of systems" is a stretch, only a few do. In fact, "support" is a stretch. Most EMRs (Cerner, Epic etc) only support HL7 as much as it gets them their CMMI / Promoting Interoperability certifications which are not relevant for actual use.