2009-09-28 69 views
1

我在zoho創建者有一個數據庫。他們給我一個數據庫內容的json。我有麻煩來解析和顯示該數據與jQuery或PHP或在HTML中jquery,json和xml

問題:那麼如何捕獲json數據,並將其保存(轉換)爲XML文件。有了xml文件,我可以輕鬆地用jquery xpath解析它...「文件」將作爲備份(如果已保存)作爲本地數據庫。

anybod有什麼線索?


的請求..這裏是鏈接查詢-link-

得到的方式來顯示來自VAR我需要的數據是最低的,我必須有! 像prod_categorie或prod_nom

注:

  1. 我可以與任何 教程幫助如何從ZOHO獲取XML數據
  2. 任何JSON以XML轉換器(jQuery的) 那裏??? ??
+1

我認爲這將是您更容易解決您的JSON的問題,然後嘗試將其從SQL轉換成JSON爲XML – 2009-09-28 23:41:32

+1

而且,你是如何做一些這方面的例子將是巨大的 – 2009-09-28 23:42:09

+0

我同意,對JavaScript處理JSON比XML容易十倍。 – bobince 2009-09-29 01:27:36

回答

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送達(你可以把它放在應用程序的子文件夾)

–   OR   –

您必須閱讀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); 
}); 

...然後您可以瀏覽其樹狀結構中的屬性。

+0

我已經嘗試了一點點的代碼只是爲了得到和錯誤無法解析url ...什麼錯? 變量$ myurl = 「http://creator.zoho.com/marcandremenard/application-lemieux/view-embed/Liste_produits_View1/7GWhjVxYeNDePjPZnExCKy58Aqr21JX2hJEE6fAfgfkapEQnRjRd5RUy8wdjKuhmFEhJR9QRsBCUBjACAdSgmJNQSvxMt6geaMNC/」; $ .getJSON($ myurl,功能(數據){ VAR危險= data.List_des_produits1 [0] .prod_danger; 的console.log(數據); 警報(危險); }); – menardmam 2009-09-29 00:18:16

+0

這個鏈接是更好的,但是仍然錯誤1012 ... http://creatorexport.zoho.com/marcandremenard/application-lemieux/json/Liste_produits_View1/zm69NgTxUvjGFw9MGRBfWBzpZVrrB2DUCEr5Yu2nr2vhe6fQC3ktyCbNXy5q17r2U0vZGQQ7y0zCODpOJvQY9ydw12bS7aDabsAk/ – menardmam 2009-09-29 00:22:41

+0

是它保存在服務器上(域和子域)作爲你的頁面?如果不是,出於安全原因,訪問該文件被Javascript阻止。在這種情況下,您必須使用[JSONP](http://remysharp.com/2007/10/08/what-is-jsonp/)來訪問數據。 – nickf 2009-09-29 00:47:57