Cela dépend du type de client qui se connectera à ce service web.
Si vous prévoyez de contacter le service Web à partir d'un navigateur, à la manière des appels AJAX en Javascript, JSON est le vainqueur incontesté car il s'agit essentiellement de la sérialisation des objets Javascript. Cette propriété de JSON le rend beaucoup plus adapté aux scripts côté client en Javascript. Les données JSON peuvent être régurgitées directement dans des objets Javascript vivants, sans grand tapage.
XML et JSON ont été conçus pour deux objectifs distincts. XML a été conçu comme un moyen de donner une définition sémantique au texte des documents. JSON, quant à lui, est spécifiquement destiné à la sérialisation des structures de données.
Les deux peuvent faire ce que l'autre peut faire, mais ces logiques de conception de base fondamentalement différentes sont, je pense, évidentes dans la façon dont vous travaillez avec chaque type de balisage.
Il est vrai que XML peut représenter des structures de données, mais un exemple de description de structures telles que des tableaux vides en XML montre que JSON est bien meilleur pour décrire des structures de données.
JSON, quant à lui, n'est pas du tout adapté à la description du sens sémantique du texte dans les documents, domaine dans lequel XML excelle (pensez à HTML).
Pas de réponse facile. Les exigences de votre client de connexion et le type de données que vous devez sérialiser doivent déterminer le choix entre XML et JSON.
JSON pour les services web répondant à des rappels dans le navigateur, et XML pour, eh bien, XML pour quand, eh bien, hmmm. :-)