spray-json】的更多相关文章

有组合关系的三个class定义 A { B { C {...} ... } ... } 每个class都有loadFromJson和writeAsJson方法.过去几年,三个class里的成员变量一直在添加,而数据库里有很多json string类型的老数据,为了能够正确的把它们转化为class,就需要对一些域进行判断,举个例子. 在 db 中有一个json string,是这样的 name: xins, age: 24 而几年后C添加了一个新的域,company 那么loadFromJson就…
A quick tour of JSON libraries in Scala Update (18.11.2015): added spray-json-shapeless libraryUpdate (06.11.15): added circe library Some time ago I wrote a post on relational database access in Scala since I was looking for a library and there were…
Akka-http是一项系统集成工具.这主要依赖系统之间的数据交换功能.因为程序内数据表达形式与网上传输的数据格式是不相同的,所以需要对程序高级结构化的数据进行转换(marshalling or serializing)成为可在网上传输的数据格式.由于可能涉及到异类系统集成,网上传输数据格式是一个公开的标准,这样大家才都可以进行解析.Json就是是一个目前业界普遍接受的网上交换数据格式.当然,所谓的数据格式转换应该是双向的,还需要包括把接收的网上传输数据转换成程序高级结构化数据. Akka-ht…
Unmarshalling是Akka-http内把网上可传输格式的数据转变成程序高级结构话数据的过程,比如把Json数据转换成某个自定义类型的实例.按具体流程来说就是先把Json转换成可传输格式数据如:MessageEntity,HttpRequest,HttpReponse等,然后再转换成程序高级结构数据如classXX实例.Unmarshalling对一个A类实例到B类实例的转换是通过Unmarshaller[A,B]来实现的: trait Unmarshaller[-A, B] exten…
spray 是基于 akka 的轻量级 scala 库,可用于编写 REST API 服务.了解 spray 的 DSL 后可以在很短的时间内写出一个 REST API 服务,它的部署并不需要 tomcat , apche 等容器,可以直接 run.对于每一个 route, spray 都会 sprawn 一个或多个 actor提供服务,actor 的数目是可以配置的,我们不需要关心多线程处理的问题.从 benchmark 来看, spray 的性能是很不错.另外,spray 提供了一套测试套件…
Geotrellis系列文章链接地址http://www.cnblogs.com/shoufengwei/p/5619419.html 目录 前言 spray-json简介 spray-json使用 总结 一.前言        Json作为目前最流行的数据交换格式,具有众多优势,在Scala语言中以及当我们使用Geotrellis前后台交换数据的时候都少不了要使用Json,本文为大家介绍一款开源的Json处理框架--spray-json. 二.spray-json简介        spray…
目录 前言 整体介绍 前台界面 后台控制 总结 一.前言        之前Geotrellis数据导入集群采用的是命令行的方式,即通过命令行提交spark任务来ingest数据,待数据导入完毕再启动主程序进行数据的调用.这样造成的一个问题就是数据导入与数据处理不能无缝对接,并且只能由管理员导入数据导入数据流程也很麻烦,用户想要导入自己的数据几乎不可能.本文为大家介绍一种自动数据导入方式--通过浏览器前端界面实现交互式数据导入. 二.整体介绍        通过浏览器方式导入,摆脱了SHELL的…
Route 是Akka-http routing DSL的核心部分,使用户能比较方便的从http-server的角度筛选http-request.进行server运算.构建回复的http-response.所谓筛选http-request主要目的是容许request进入下一内层Route,或者拒绝reject request.比如这个-符号:它连接了上下两个独立的Route.如果上面的Route拒绝了一个request,那么下面的Route就会接着尝试这个request.一般来说:当一个筛选功能…
上篇我们讨论了Akka-http的文件交换.由于文件内容编码和传输线上数据表达型式皆为bytes,所以可以直接把文件内容存进HttpEntity中进行传递.那么对于在内存里自定义的高级数据类型则应该需要首先进行byte转换后才能放入HttpEntity中了.高级数据类型与byte之间的相互转换就是marshalling和unmarshalling过程了.这个我们在前几篇讨论里提及过,在本篇再重温加强印象.因为我们的主要目的是实现数据库表行的交换,所以应该把焦点放在 T <-> MessageE…
在前面一篇讨论里我们介绍了通过http进行文件的交换.因为文件内容是以一堆bytes来表示的,而http消息的数据部分也是byte类型的,所以我们可以直接用Source[ByteString,_]来读取文件然后放进HttpEntity中.我们还提到:如果需要进行数据库数据交换的话,可以用Source[ROW,_]来表示库表行,但首先必须进行ROW -> ByteString的转换.在上期讨论我们提到过这种转换其实是ROW->Json->ByteString或者反方向的转换,在Akka-h…