2009-10-08 11 views
0

Je fais un appel de service Web et je reçois une réponse au format JSON. Après avoir reçu la réponse, je voudrais afficher les données dans une page. Avant d'afficher ces données sur la page, je dois effectuer des vérifications pour m'assurer que certains éléments sont définis et, si ce n'est pas le cas, leur donner les valeurs par défaut (exemple ci-dessous).Valider/Scruter les données JSON

var scoreSummary = JSON.parse(response).summary; 
var gameStatus = scoreSummary.gameStatus ? scoreSummary.gameStatus : 'pre'; 
var homeRanking = scoreSummary.homeRank ? scoreSummary.homeRank : ''; 
var awayRanking = scoreSummary.awayRank ? scoreSummary.awayRank : '' 

Maintenant, j'ai plusieurs pages où je peux appeler ce même service Web et je ne veux pas reproduire tous les contrôles et réglage des valeurs par défaut. Y a-t-il un moyen de centraliser ces vérifications de sorte que je les ai seulement dans un endroit au lieu de disperser dans plusieurs pages que chacun fait le même appel de service?

Merci

Répondre

4

Comme, un appel de fonction?

function setDefaultValues(jsonResponse) { 
    var scoreSummary = JSON.parse(jsonResponse).summary; 
    scoreSummary.gameStatus = scoreSummary.gameStatus || 'pre'; 
    scoreSummary.homeRank = scoreSummary.homeRank || ''; 
    scoreSummary.awayRank = scoreSummary.awayRank || ''; 
    return scoreSummary; 
} 
4

Mettez le contrôle dans une fonction dans un fichier .js externe et un lien que fichier script sur les pages qui font l'appel de service Web.

Dans une réponse AJAX réussie, appelez la fonction qui passe dans le responseText (ou un objet JavaScript analysé de la réponse), effectuez la validation et renvoyez la réponse avec les valeurs par défaut au code appelant.

+0

Hm, c'est ce que je voulais dire. :-) +1 – Tomalak

+0

@Tomalak - et j'allais écrire le code, mais maintenant vous avez, donc +1 pour vous :) –

Questions connexes