2009-09-28 6 views
1

J'ai une base de données chez zoho creator. Ils me nourrissent un json du contenu de la base de données. Question: Comment puis-je capturer des données json, et enregistrer (convertir) en fichier au format XML. Avec le fichier xml je peux facilement l'analyser avec jquery xpath ... le "fichier" sera une base de données locale, en tant que sauvegarde (si sauvegardé)jquery, json et xml

anybod a une idée de cela?


comme demande .. Voici le lien pour la requête -link-

obtenir un moyen d'afficher les données de var i besoin est le minimum que je dois avoir! comme prod_categorie ou prod_nom

Note:

  1. je peux obtenir de l'aide avec un tutoriel sur comment obtenir des données XML à partir de Zoho
  2. tout JSON convertisseur xml (jquery) là ??? ??
+1

Je pense qu'il serait plus facile pour vous de résoudre votre problème JSON puis essayez de le convertir de SQL en JSON en XML –

+1

En outre, quelques exemples de la façon dont vous faites cela serait génial –

+0

Je suis d'accord, pour la gestion JavaScript JSON est dix fois plus facile que XML. – bobince

Répondre

1
<html> 
    <head> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
    </head> 
    <body> 
    <div id="Liste_output"></div> 

    <script type="text/javascript"> 
    jQuery.ajax({ 
     url: "http://creatorexport.zoho.com/marcandremenard/application-lemieux/json/Liste_produits_View1/7GWhjVxYeNDePjPZnExCKy58Aqr21JX2hJEE6fAfgfkapEQnRjRd5RUy8wdjKuhmFEhJR9QRsBCUBjACAdSgmJNQSvxMt6geaMNC/", 
     dataType: "json", 
     success: function(data) { 

      var Liste_div = jQuery("#Liste_output"); 
      var Liste_data = data["Liste_des_produits1"]; 
      for (var i=0; i<Liste_data.length; ++i) { 
      var prod_i = Liste_data[i]; 
      Liste_div.append('<div>' + 
       '<div>Nom: <span>' + prod_i["prod_nom"] + '</span></div>' + 
       '<img src="/images/prod/'+ prod_i["prod_photo"] +'"/>' + 
       '<div>Description: <span>' + prod_i["prod_desc"] + '</span></div>' + 
       '<div>Ingredient: <span>' + prod_i["prod_ingredient"] + '</span></div>' + 
       '<div>Odeur: <div class="odeur_cls"></div></div>' + 
       '<div>Certification: <div class="cert_cls"></div></div>' + 
       '</div>'); 
      var odeur_data = prod_i["prod_odeur"]; 
      for (var j=0; j<odeur_data.length; ++j) { 
       jQuery('#Liste_output odeur_cls').eq(j).append('<span>' + 
        odeur_data[j] + '</span>' + (j<odeur_data.length-1 ? ', ' : '')); 
      } 
      var cert_data = prod_i["prod_certification"]; 
      for (var k=0; k<cert_data.length; ++k) { 
       jQuery('#Liste_output cert_cls').eq(k).append('<div>' + cert_data[k] + '</div>'); 
      } 
      } 
     } 
    }); 
    </script> 
    </body> 
</html> 

Ceci ne fonctionnera pas à partir d'un fichier local. Le code HTML doit être servi à partir du même domaine que la requête de base de données, qui est, il doit être servi à partir http://creatorexport.zoho.com (vous pouvez le mettre dans le sous-dossier app)

–   OU   –

Vous devez lire les documents zoho et découvrir comment effectuer un "rappel" (parfois appelé "JSONP"). Habituellement, cela est fait en ajoutant quelque chose comme ?callback=data à la fin de l'URL.

2

Premièrement, Javascript n'a pas de capacité de sortie de fichier. Le mieux qu'il peut faire est de renvoyer les données à un serveur pour qu'il y soit traité. L'idée de "capturer des données json et de les enregistrer dans un fichier au format XML" est donc supprimée.

Quels sont les problèmes particuliers que vous rencontrez avec l'utilisation de JSON? Comme il est converti en un objet Javascript natif, je trouve qu'il est assez facile de travailler avec moi-même. Bien que, je peux voir que si vous vouliez utiliser XPath pour l'interroger, JSON n'est d'aucune aide. Vous devriez toujours être en mesure d'obtenir toutes les données dont vous avez besoin, mais cela pourrait être un peu plus verbeux.

Dans votre exemple JSON:

{"Liste_des_produits1":[{"Added_Time":"28-Sep-2009 16:35:03", 
"prod_ingredient":"sgsdgds","prod_danger":["sans danger pour xyz"],"prod_odeur".. 

Vous pouvez accéder à la propriété prod_danger comme ceci:

$.getJSON(url, function(data) { 
    var danger = data.List_des_produits1[0].prod_danger; 
}); 

Si vous éprouvez des difficultés à obtenir le droit chemin à une propriété, Firebug est une grande aide avec ça. Appelez simplement ceci:

$.getJSON(url, function(data) { 
    console.log(data); 
}); 

... et vous pouvez ensuite parcourir ses propriétés dans une arborescence.

+0

J'ai essayé ce petit peu de code juste pour obtenir et erreur ne pouvait pas analyser url ... quel est le problème? var $ myurl = "http://creator.zoho.com/marcandremenard/application-lemieux/view-embed/Liste_produits_View1/7GWhjVxYeNDePjPZnExCKy58Aqr21JX2hJEE6fAfgfkapEQnRjRd5RUy8wdjKuhmFEhJR9QRsBCUBjACAdSgmJNQSvxMt6geaMNC/"; .getJSON $ (de myurl de $, la fonction (données) {var danger = data.List_des_produits1 [0] .prod_danger; console.log (données); alerte (danger); }); – menardmam

+0

ce lien est mieux, mais toujours une erreur 1012 ... http://creatorexport.zoho.com/marcandremenard/application-lemieux/json/Liste_produits_View1/zm69NgTxUvjGFw9MGRBfWBzpZVrrB2DUCEr5Yu2nr2vhe6fQC3ktyCbNXy5q17r2U0vZGQQ7y0zCODpOJvQY9ydw12bS7aDabsAk/ – menardmam

+0

est sur le serveur de sauvegarde (domaine et sous-domaine) comme votre page? Sinon, l'accès au fichier est bloqué par Javascript pour des raisons de sécurité. Vous devrez utiliser [JSONP] (http://remysharp.com/2007/10/08/what-is-jsonp/) pour accéder aux données dans ce cas. – nickf

2

Il existe des modules d'extension jQuery pour une telle conversion, par exemple json2xml.