J'ai les données ci-dessous des données JSON provenant du service Web qui n'est rien d'autre qu'un dictionnaire sérialisé dans Json, maintenant sur le côté du client, j'ai besoin d'analyser ce dos à itérer les clés de ce dictionnaire JSON à l'aide de JavaScript ou JQuery
{
   "AboutToExpire": {
      "Display": true,
      "Message": "Several of your subscriptions are about to expire. <a id=\"lnkShowExpiringSubs\" href=\"#\">View subscriptions<\/a>"
   },
   "Expired": {
      "Display": true,
      "Message": "Your McAfee WaveSecure - Tablet Edition subscription has expired and youâve been without protection for 384 days. <a id=\"lnkNotificationRenewNow\" href=\"http://home.mcafee.com/root/campaign.aspx?cid=96035&pk=FAB37CF4-3680-4A87-A253-77E7D48BF6D7&affid=0\">Renew now<\/a>"
   }
}
4 Réponses :
Paysez-le à? Vous pouvez simplement y attérer comme l'objet que c'est.
Dites que vous avez défini votre objet JSON en tant que variable à travers une fermeture ou quelque chose, ou pour l'exemple de l'exemple, comme une variable est une variable. >
$each(myJSON, function(x){document.print(myJSON.AboutToExpire[x].Message);`});
J'ai besoin de vérifier la clé et de faire une certaine manipulation par exemple si la clé est aboutittoexpire ou quelque chose d'autre que j'ai besoin d'appliquer une classe et pour d'autres clés autres classes sur la valeur qui est un message dans ce cas.
De plus, Myjson.abouttoExpire vient comme non défini
Utilisez JSON2.JS
var obj = JSON.parse(data);
for(var key in obj){
if (obj.hasOwnProperty(key)){
var value=obj[key];
// work with key and value
}
}
Bonne solution. Mais vous n'avez pas besoin d'inclure JSON2.JS à moins que vous ne regardiez de très vieux navigateurs. Tous les navigateurs actuels ont analysé () et stringify () pris en charge de manière nativement.
Ne devriez-vous pas échanger si (obj.hasownProperty (clé)) { code> et pour (var cle à obj) { code> pour des raisons de performance?
@Neolisk Nope. Voir soigneusement! Le code indique pour chaque clé de l'objet et si cette touche est la valeur de la propriété de la propriété de l'OBJ ... code>
@ Shiplu.mokadd.im: Oui, vous avez raison, désolé. Je viens du monde C #, où une telle syntaxe est bizarre de dire le moins. +1 :)
var s = '{"AboutToExpire":{"Display":true,"Message":"Several of your subscriptions are about to expire. \u003ca id=\"lnkShowExpiringSubs\" href=\"#\"\u003eView subscriptions\u003c/a\u003e"},"Expired":{"Display":true,"Message":"Your McAfee WaveSecure - Tablet Edition subscription has expired and youâve been without protection for 384 days. \u003ca id=\"lnkNotificationRenewNow\" href=\"http://home.mcafee.com/root/campaign.aspx?cid=96035&pk=FAB37CF4-3680-4A87-A253-77E7D48BF6D7&affid=0\"\u003eRenew now\u003c/a\u003e"}}';
var data = eval(s); // this will convert your json string to a javascript object
for (var key in data) {
if (data.hasOwnProperty(key)) { // this will check if key is owned by data object and not by any of it's ancestors
alert(key+': '+data[key]); // this will show each key with it's value
}
}
EVAL CODE> est jugé dangereux par un large public. @ SHIPLU.MOKADD.IM La réponse est l'option la plus sûre.
Downvote for Eval, veuillez noter que c'est une mauvaise idée sur les données externes.
' p> ' p> ul>
Voulez-vous s'il vous plaît le faire (JSON Data) Lisible en premier ??
Qu'avez-vous essayé? aussi, quelle est votre question ?