码迷,mamicode.com
首页 > Web开发 > 详细

spray-json

时间:2016-08-26 19:52:56      阅读:512      评论:0      收藏:0      [点我收藏+]

标签:

spray-json是一个轻量级的,简介的和高效的使用Scala实现的json

它拥有以下特征:

    • 一个简单不可变的模型的json语言元素
    • 一个高效的json解析器
    • 可选择既紧凑又漂亮的json到string的打印(格式化输出)
    • 基于类的自定义对象的(反)序列化(没有反射,没有入侵)
    • 没有外部依赖包

spray可以做以下转换:

*JSON字符串

*基于JsValue的JSON抽象语法树(JSON Abstract Syntax Tree(ASTs))

*任意的scala类型的实例

如下图描述

技术分享

安装

spray-json 可以从 http://repo.spray.io/仓库获得

最终的发布版本是1.3.2 ,对应的构建在scala 2.10.5和scala 2.11.6

如果你使用SBT 使用下面方依赖将spray-json加入到你的项目中

libraryDependencies += "io.spray" %%  "spray-json" % "1.3.2"

 

使用方法

 spray-json 非常容易使用.

仅仅需要导入相关方法

import spray.json._
import DefaultJsonProtocol._ //如果你不提供自己的协议(见下文)

如下样例:

  • 解析JSON字符串转换为树结构(Abstract Syntax Tree (AST))实例
val source = """{ "some": "JSON source" }"""
val jsonAst = source.parseJson // or JsonParser(source)

输出:

source: String = { "some": "JSON source" }
jsonAst: spray.json.JsValue = {"some":"JSON source"}
  • 打印JSON AST 返回一个string既可以用CompactPrinter也可以用PrettyPrinter输出
val json = jsonAst.prettyPrint //格式化输出
val json1 = jsonAst.compactPrint //输出一行

输出:

json: String = {
  "some": "JSON source"
}
json1: String = {"some":"JSON source"}
  • 调用其toJson方法将scala的任意类型转换为一个Json AST
val jsonAst = List(1, 2, 3).toJson

输出:

jsonAst: spray.json.JsValue = [1,2,3]
  • 调用convertTo方法将JSON AST 转换为Scala object
val jsonAst = List(1, 2, 3).toJson
jsonAst.convertTo[List[Int]]

输出:

res0: List[Int] = List(1, 2, 3)

为了使对象的步骤3和步骤4的工作你需要指定隐式类型的值的范围,提供JsonFormat[T]实例为T,T(直接或间接)所使用的所有类型。

 

spray-json

标签:

原文地址:http://www.cnblogs.com/weilunhui/p/5811472.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!