首页 > 代码库 > spray-json
spray-json
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 = http://www.mamicode.com/{"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 = http://www.mamicode.com/[1,2,3]>
- 调用convertTo方法将JSON AST 转换为Scala object
val jsonAst = List(1, 2, 3).toJsonjsonAst.convertTo[List[Int]]
输出:
res0: List[Int] = List(1, 2, 3)
为了使对象的步骤3和步骤4的工作你需要指定隐式类型的值的范围,提供JsonFormat[T]实例为T,T(直接或间接)所使用的所有类型。
spray-json
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。