2014-11-06 47 views
0

我沒有任何json和d3知識(剛開始閱讀幾個小時後),但具有非常基本的JavaScript知識。我必須加載一個json文件並使用d3在控制檯上打印所有數組和對象。我想知道是否有人能幫我解決這個問題。其實,我做到了,但不工作:( 我的JSON文件。如何在javascript中加載和打印json數組/對象

{ 
    "addressfile": "info", 
     "struct": { 
      "address": [ 
       [ 
        "A", 
        "B", 
       ], 
       [ 
        "B", 
        "C", 
       ], 
     ], 

      "address1": { 
      "address2": { 
      "address3": { 
        "zip": [ 
         "NUMBER", 
         0 
        ] 
        }, 
      "address_type": "Home" 
      }, 
     } 
    }, 
    "COUNTRY": {}, 
    } 

我的javascript代碼...

<!DOCTYPE html> 
<meta charset="utf-8"> 
<style> 
<body> 
<script> 
//LOADING JSON FILE 
d3.json("address.json", function(error, root) { 
     if (error) return console.error(error); 
      for (var p in location) if (location.hasOwnProperty(p)) { 
       console.log(p + " : " + location[p]); 
      } 
     } 
</script> 
</body> 
</html> 

請幫我解決這個問題...

+1

應該說是'location',而不是'root'作爲第二個參數回調? – 2014-11-06 15:12:55

回答

0

嘗試

d3.json("appinfo.json", function(location) { 

我知道文檔說回調有兩個參數,一個項目,我最近與D3已經做rsion 3.4.13,回調函數只會工作,如果我只傳遞給它的數據參數。

+0

感謝您的答覆..我也這樣做,但沒有工作....沒有輸出 – Kal 2014-11-06 16:36:43

0

你的代碼缺少一個右括號 - );

正確的代碼是:

<script> 
    d3.json("appinfo.json", function(error, root) { 
     if (error) return console.error(error); 

      console.log(root) // output -your JSON data as pojo 

      //for (var p in location) if (location.hasOwnProperty(p)) { 
      //  console.log(p + " : " + location[p]); 
      //} 
    }); 
</script> 
  • 確保你寫正確的URL到您的JSON文件中的第一個參數d3.json()。
  • 確保appinfo.json包含正確的JSON對象,你可以在http://jsonlint.com/
+0

感謝您的答覆和修​​復:D,但它仍然無法正常工作。 JSON的路徑是正確的(我也硬編碼它)和格式是一個有效的JSON文件..任何其他的想法:(.... – Kal 2014-11-07 09:25:26

+0

是否有任何錯誤在控制檯? – 2014-11-07 09:31:54

+0

是的..我在控制檯得到這個.. 。對一個對象的[[Prototype]]進行變異將導致你的代碼運行速度非常緩慢;相反,使用Object.create Object {sourcefile:「Script」,structure:Object創建具有正確初始[[Prototype]]值的對象,組件:Object,node_mapping:Object} 不推薦使用getPreventDefault(),使用defaultPrevented代替 – Kal 2014-11-07 09:38:53

0

謝謝大家測試一下..我掙扎得到解決後.. 解決方案:外部JSON文件不被瀏覽器支持所以我需要使用網絡服務器。然後我可以在控制檯中看到它的輸出。 最終代碼:

<!DOCTYPE html> 
<meta charset="utf-8"> 
<head> 
    <script src="http://d3js.org/d3.v3.min.js"></script> 
</head> 
<body> 
    <script> 
     d3.json("address.json", function(location) { 
     console.log(location) 
    }); 
    </script> 
</body> 
</html> 

希望它可以幫助別人不喜歡我小時分解決.....