One reason in favor of using JSON over XML for web services I don't see mentioned often is that many XML schema based deserializers will by default fail if they get an unexpected element whereas JSON deserializers will ignore it, making it easier to remain backwards-compatible.
Example: If you have the following defined in your .xsd
<complexType name="MyMethodResponse">
<sequence>
<element name="A" type="string" />
<element name="B" type="string" />
</sequence>
</complexType>
and you later add a "C", existing clients will fail, so you will have to create a new method along side the old one to remain compatible.