如何解析JSON使用Play框架

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解析JSON使用Play框架相关的知识,希望对你有一定的参考价值。

参考技术A 因为最近在编写scala程序,就发现了使用play框架来方便的解析json数据。
一. 官网的解释是这样的:
1. 解析类库位于 play.api.libs.json._ 包。
2. 可以解析json字符串,可以创建json字符串。基于java的JSON库和jackson。
3. 可以在java和scala之间共享jackson底层库。
4. 可以享受play框架提供的额外的类型安全和函数编程的体验。
5. JSON is an AST (Abstract Syntax Tree).

如何在 Play 中将 url 段转换为单个参数!框架

【中文标题】如何在 Play 中将 url 段转换为单个参数!框架【英文标题】:How to turn a url segment into a single parameter in Play! Framework 【发布时间】:2012-01-01 11:27:41 【问题描述】:

问题

我希望 url 段here/is/a/request/to/letsay/a/user 在 Play 中变成一个单独的参数orginalRequest!路线

为什么

为了使用 JSON 和 AJAX 解决同源策略,我们决定在我们自己的服务器上运行 web services client,将所有 JSON 调用重定向到外部 REST API。

剧中有没有办法!我可以威胁 /api/ 之后的框架路由文件作为一个参数?

在路线中:

GET    /api/fromhere/is/what/iwant/as/single/parameter    App.getFromOtherDomain

应用内:

public void getFromOtherDomain(String orginalRequest)    
   WSRequest req = WS.url("https://api.otherdomain.com/" + orginalRequest);
   Promise<HttpResponse> respAsync = req.getAsync();
   HttpResponse resp = await(respAsync);   
   renderJSON(resp.getJson());

【问题讨论】:

【参考方案1】:

Play 1.x 中,您使用 RegEx:

路线:

 GET   /files/<[a-z0-9/\.]*>name               Application.download(name)

Play 2.0 中,您可以缩短一点:

路线:

GET   /files/*name                               Application.download(name)

呼叫:

http://yourserver/files/public/downloads/hello.png

在下载操作中,name 将等于 "public/downloads/hello.png"

【讨论】:

谢谢,很高兴这将在 2.0 中工作,但我仍在使用 1.2.3 版本【参考方案2】:

您可以从您的控制器中使用request.path and request.uri 提取您需要的信息,然后使用提取的信息调用您的其他方法。

【讨论】:

但是在路由文件夹中怎么做呢?您如何获得对 /api/../../../ 的所有调用以转到 Application.api()?

以上是关于如何解析JSON使用Play框架的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Play 2.7 for Scala 中编写一个通用 JSON 解析器来验证入站请求?

使用 Play-JSON 库解析对象序列

如何用play json库解析二级JSON数组?

如何使用 AFNetworking 进行 json 解析

使用 Asihttprequest 和 iPhone 的 Json 框架解析 JSON 数据

使用 Express 框架在 Nodejs 中解析 JSON 请求 [重复]