2

我是新來玩的。我正在使用renderJSON來生成JSON數據。我如何在我看來訪問這些數據。我嘗試渲染(「視圖」,jsonobject)。而我試圖訪問jquery腳本中的這個對象,而不是在這裏接收任何數據。呈現視圖中的JSON數據 - 播放框架

我試着用ajax調用。下面的方法在我的控制器

public static void getJSONWords(){ 
....... 
render(jsonObject); 
} 

public static void wordcloud(){ 
    render(); 
} 

和我的觀點「wordcloud.html」一個Ajax

 $.ajax({ 

    url: "/getJSONWords", 
    dataType : 'json', 
    success: function (data) { 
      ....... 
      }); 

,但我沒有收到我們的Ajax調用的任何數據。我試着用Firfox調試器,檢查日誌文件ajax調用是調用各自的控制器動作。感謝您的幫助

+0

什麼版本的Play!你正在用嗎?版本1.2.x或2.0.x? –

+0

播放版本:1.2.5 – PlayLover

+1

通常我使用renderJSon和ajax請求。在這種情況下,您的數據將位於$ .get或$ .post –

回答

2

renderJSON將JSON直接返回給瀏覽器,並且不會被View處理。

如果你想訪問的JSONObject在你的觀點,那麼你可以做

render(jsonObject); 

這將JSON對象傳遞到您的視圖,並使其可爲jsonObject。所以,在你的View中,你可以做類似的事情。

<script> 
    var data = ${jsonObject.raw()}; 
    $(document).ready(function() { 
     // process your JSON once the rest of the document is rendered 
    }); 
</script> 

請注意,我使用raw()來防止特殊字符被轉義。

UDPATE:在更新了更多信息之後......看起來您的AJAX呼叫中的路由不正確。它應該看起來像......

$.ajax({ 

    url: "@{Application.getJSONWords}", 
    dataType : 'json', 
    success: function (data) { 
      ....... 
      }); 
+0

嗨,我現在更新了我的帖子,我正在進行ajax調用。 – PlayLover

+0

如果您正在進行ajax調用,那麼renderJSON是正確的選擇。您的路線可能是錯誤的,但請參閱我的更新。 – Codemwnci

+0

我試圖這樣$就({ \t \t URL: 「/ getJSONWords」, \t \t數據類型: 'JSON', \t \t成功:功能(數據){ \t \t \t變種TESTDATA =數據;}} );與renderJSON(jsonObject)在我的控制器,但我的ajax失敗。謝謝。 – PlayLover

0

您是否嘗試過在你的視圖documented herehere使用#{jsAction /}標籤。該標籤設計爲以透明地從控制器獲得方法定義。該文件顯示了很多它的用法示例,所以我猜這會幫助你處理你的問題。