【问题标题】:jquery, json and xmljQuery、json 和 xml
【发布时间】:2009-09-28 23:39:03
【问题描述】:

我在 zoho creator 有一个数据库。他们给我提供了数据库内容的 json。我无法使用 jquery 或 php 或 html 解析和显示该数据

问题:那么我如何捕获 json 数据,并将其保存(转换)为 XML 文件。使用 xml 文件,我可以使用 jquery xpath 轻松解析它......“文件”将是一个本地数据库,作为备份(如果保存)

有人知道吗?


作为请求..这里是查询-link-的链接

从我需要的 var 中获得一种显示数据的方法是我必须具备的最低要求! 像 prod_categorie 或 prod_nom

注意:

  1. 我可以在任何教程上获得帮助 如何从 zoho 获取 xml 数据
  2. 任何 json 到 xml 转换器 (jquery) 在外面?????

【问题讨论】:

  • 我认为解决 JSON 问题会更容易,然后尝试将其从 SQL 转换为 JSON 再转换为 XML
  • 另外,一些你如何做到这一点的例子会很棒
  • 我同意,因为 JavaScript 处理 JSON 比 XML 容易十倍。

标签: javascript jquery xml json


【解决方案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>

这不适用于本地文件。 HTML 必须从与数据库查询相同的域提供,即必须从http://creatorexport.zoho.com提供服务(您可以将其放在app子文件夹中)

– 或 –

您必须阅读 zoho 文档并了解如何执行“回调”(有时称为“JSONP”)。通常这是通过在 URL 的末尾添加类似 ?callback=data 的内容来完成的。

【讨论】:

    【解决方案2】:

    首先,Javascript 没有文件输出功能。它所能做的最好的事情就是将数据发送回服务器进行处理——因此“捕获 json 数据,并将其保存为 XML 文件”的想法已经过时了。

    您在使用 JSON 时特别遇到了哪些问题?当它被转换为原生 Javascript 对象时,我发现自己很容易使用。不过,我可以看到,如果您想使用 XPath 来查询它,JSON 也无济于事。您仍然应该能够获取所需的任何数据,但可能会更加冗长。

    在您的示例 JSON 中:

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

    您可以像这样访问prod_danger 属性:

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

    如果您在获取属性的正确路径时遇到问题,Firebug 可以提供很大的帮助。就这样称呼吧:

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

    ...然后您可以在树结构中浏览其属性。

    【讨论】:

    【解决方案3】:

    这种转换有jQuery插件,例如json2xml。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多