在视图中呈现 JSON 数据 - 播放框架
Posted
技术标签:
【中文标题】在视图中呈现 JSON 数据 - 播放框架【英文标题】:render JSON data in view - play framework 【发布时间】:2012-09-22 16:27:41 【问题描述】:我是新手。我正在使用 renderJSON 来生成 JSON 数据。如何在我的视图中访问这些数据。我试过渲染(“视图”,jsonobject)。当我试图在 jquery 脚本中访问这个对象时,这里没有收到任何数据。
我尝试使用 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 调用是否正在调用相应的控制器操作。感谢您的帮助
【问题讨论】:
什么版本的玩!你正在用吗?版本 1.2.x 还是 2.0.x? 通常我将 renderJSon 与 ajax 请求一起使用。在这种情况下,您的数据将位于 $.get 或 $.post 函数的第一个变量(通常称为数据)内 @MarcoCalì 我尝试使用 ajax 调用,但没有得到任何数据。你能看看吗?谢谢。 如果你在 post 或 get 函数中设置断点,你可以检查局部变量数据 @MarcoCalì 尝试使用 Firefox 进行调试,但由于某种原因没有获取数据。 【参考方案1】:renderJSON
直接将JSON返回给浏览器,不被View处理。
如果你想访问你视图中的jsonObject,那么你可以这样做
render(jsonObject);
这会将 json 对象传递给您的视图,并将其作为jsonObject
提供。因此,在您的视图中,您可以执行类似的操作。
<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)
.......
);
【讨论】:
如果您正在进行 ajax 调用,那么 renderJSON 是正确的做法。不过,您的路线可能是错误的……请参阅我的更新。 我试过这样 $.ajax( url: "/getJSONWords", dataType : 'json', success: function (data) var testData = data;);在我的控制器中使用 renderJSON(jsonObject) 但我的 ajax 失败了。谢谢。 您的路线文件中有什么?如果没有,那么您的路线不正确。按照我的建议设置路线,看看会发生什么。【参考方案2】:您是否尝试过在您的视图中使用#jsAction /
标记作为documented here 和here。该标签被设计为透明地从控制器获取方法定义。该文档显示了很多有关其用法的示例,因此我想这将有助于您处理问题。
【讨论】:
以上是关于在视图中呈现 JSON 数据 - 播放框架的主要内容,如果未能解决你的问题,请参考以下文章
从公共 API 获取 JSON 以在 SwiftUI 的列表视图中呈现
列表视图 itemclick 事件 appcelerator