scala – 如何在lift项目中使用dispatch.json
我很困惑如何在调度和提升中组合json库来解析我的json响应.
我显然是斯卡拉新手. 我写了这段代码: val status = { val httpPackage = http(Status(screenName).timeline) val json1 = httpPackage json1 } 现在我被困在如何解析twitter json响应 我试过使用JsonParser: val status1 = JsonParser.parse(status) 但得到了这个错误: <console>:38: error: overloaded method value parse with alternatives: (s: java.io.Reader)net.liftweb.json.JsonAST.JValue<and> (s: String)net.liftweb.json.JsonAST.JValue cannot be applied to (http.HttpPackage[List[dispatch.json.JsObject]]) val status1 = JsonParser.parse(status1) 我不确定,无法弄清楚下一步要做什么来迭代数据,提取它并将其呈现到我的网页. 解决方法
您收到的错误是让您知道状态的类型既不是String也不是java.io.Reader.相反,你拥有的是已经解析过的JSON响应列表,因为Dispatch已经完成了将响应解析为JSON响应的所有艰苦工作. Dispatch有一个非常紧凑的语法,当你习惯它时很好,但它最初可能非常迟钝,特别是当你第一次接近Scala时.通常情况下,当您第一次学习查看正在发生的事情时,您会发现必须深入了解库的源代码.例如,如果您查看dispatch-twitter源代码,您可以看到
timeline method实际上对响应执行了JSON提取:
def timeline = this ># (list ! obj) 此方法定义的是Dispatch Handler,它将Response对象转换为JsonResponse对象,然后将响应解析为JSON对象列表.在一行中有相当多的进展.您可以在http json Dispatch模块的JsHttp.scala文件中看到操作数>#的定义. Dispatch定义了许多处理程序,它们在幕后进行转换为不同类型的数据,然后您可以将这些数据传递给阻止使用.查看一些处理程序的StdOut Walkthrough和Common Tasks页面,但您需要深入了解各种模块源代码或Scaladoc,看看还有什么. 所有这一切都是很长的路要走到你想要的东西,我相信这基本上是这样的: val statuses = http(Status(screenName).timeline) statuses.map(Status.text).foreach(println _) 只需而不是执行println,您可以以任何您想要的方式将其推送到您的网页.查看Status object中的一些预先构建的提取器,以便从状态响应中提取信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- WebPack Angular 2上的PrimeNG计划
- Centons下 解决yum Loaded plugins: fastestmirr
- 如何在Bash中增加零填充int
- 在Vim中删除一对括号,括号或大括号
- 基于AngularJs + Bootstrap + AngularStrap相结合
- ssh – PuTTY致命错误:服务器拒绝启动shell /命
- Axis2 WebService Client
- shell – 在服务器上运行java jar文件作为后台进
- angularjs – Angular ui bootstrap指令模板丢失
- angularjs的$watch、$watchGroup、$watchCollect