如何解析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 解析器来验证入站请求?