I generally prefer using JSON in my interactions, where possible.
That's because it is lightweight, and 99.9% of the data I'm transferring is scalar. JSON is basically "implied" for scalar types.
The good thing (if you want to call it "good") about XML, is Schema.
Schema is a "rock hard" contract. It is definite, empirical, unambiguous. When I am looking at an API, and it has a Schema, then I know that I can figure out exactly what shape the data will take/emit.
If possible, I still use JSON for the exchange. I just use the XML to figure out the specifics in the exchange.
I've been working in XML forever, it seems. I've done ONVIF stuff, which is SOAP/WSDL-based, and even XSLT.
I still like JSON.
Mostly because I don't have to deal with Schema.
Over the years, I've gotten fairly good at developing XML Schemas, but I have never gotten "used" to it, and still have to look everything up.
If I develop APIs, I will often do an XML variant, alongside the JSON, because that forces me to write a Schema. Doing this, helps me to "code review" my schema, and also gives me a very convenient automated test hook.
But, boy, I still hate XML Schema...