I would argue that JSON wins by the maxim of &quot;worse is better&quot;; its vastly reduced feature set works to repel bad architects&#x27; efforts to incorporate horrendous and partially-supported WS-* concepts, external entities, doctypes, crazypants XSDs, and the horrors of XSLT--not that these things are bad in and of themselves, in fact they can be great, but interop can turn into absolute hell.  IME if you have the luxury of working purely in .NET, on an updated, common version of WCF, and also nobody on the team goes wild with overdesign, the tooling and the things you can do are pretty great.  OTOH testability is questionable, security might be bad, you spend a lot of time finding the right magic incantations to make everything work, and sometimes the tooling breaks in bizarre ways despite good efforts.<p>TLDR I used to be a big fan of XML, have switched to JSON, and probably won&#x27;t be going back.