2013-03-09 89 views
2

我想顯示使用谷歌地圖頁面上2個地方之間的距離。簡單的JSON幫手請求 - webmatrix /剃鬚刀

所以我已經找到了如何寫URL,但我不知道如何解碼響應並在我的網站上顯示?這是我到目前爲止:

string distancematrix = "http://maps.googleapis.com/maps/api/distancematrix/json?  origins=34746+Florida&destinations=Universal+Studios+Florida|Orlando+Internation+Airport&mode=driving&units=imperial&sensor=false"; 
Json.Write(distancematrix, Response.ToString); 

我可以把每個結果放到頁面使用@命令嗎?

謝謝,加文

+0

是的,你可以使用「@」剃刀語法。 – VoidKing 2013-03-11 16:57:29

+0

另外,如果我正確理解你的問題,你應該可以使用「Json.Decode()」來解碼json。你在問什麼? – VoidKing 2013-03-11 16:58:24

+0

這是迄今爲止編寫的代碼,但它不起作用。我只是想能夠把結果拉出來。 – Gavin5511 2013-03-11 21:17:41

回答

0

這是一個(簡單的)例子CSHTML頁從外部文件,而不是外部的網站獲得的數據,但它可以幫助你,但是:

@{ 
    var json = File.ReadAllText(Server.MapPath("~/TestJSON.json")); 
    var data = Json.Decode(json); 
} 

<html> 
    <head> 
    </head> 
    <body> 
     <p> 
      @data.destination_addresses <br/> 
      @data.origin_addresses <br/> 
      @data.rows <br/> 
      @data.status 
     </p> 
    </body> 
</html> 

我不知道(因爲我用我不習慣看到的方式編寫的JSON語法,因此我有點不習慣),但是看起來像使用括號(即「[」和「]」)表示使用數組?

如果您正在訪問數組這樣,它可能是這個樣子:

@{ 
    var json = File.ReadAllText(Server.MapPath("~/TestJSON.json")); 
    var data = Json.Decode(json); 
    var i = 0; 
} 

<html> 
    <head> 
    </head> 
    <body> 
     <p> 
      @{ 
       while(i < data.destination_addresses.Length) 
       { 
        data.destination_addresses[i]; <br/> 
        i++; 
       } 
      } 
     </p> 
    </body> 
</html> 

只要讓我知道,如果這沒有幫助,我們可以從那裏。

+0

@ Gavin5511您的JSON數據路徑可能更像這樣:var json = File.ReadAllText(「http://maps.googleapis.com/maps/api/distancematrix/json?originins = 34746 + Florida&destinations = Universal +工作室+佛羅里達州|奧蘭多+國際+機場&mode = driving&units = imperial&sensor = false「)但我無法確定,因爲我從未試圖尋找另一個用於JSON數據的網址。此外,該方法確實會說「File.ReadAllText」,它可能不會期望一個完整的外部網址,我不確定... – VoidKing 2013-03-11 21:46:32