Muk*_*uki 5 tree json scala scalaz scalaz7
我目前正在尝试使用Tree该类从数据库查询构建树结构.之后我想将它转换为json对象(使用playframework api).
Tree该类的一些示例或更多文档将是非常棒的.我无法得到我的头draw和drawTree方法,这可能做一个类似的事情.
val tree = ("Root", 100).node(
("Category1", 30).leaf,
("Category2", 20).node(
("Sub1", 15).leaf,
("Sub2", 3).leaf,
("Sub3", 2).leaf),
("Category3", 10).leaf,
("Category4", 30).node(
("Sub1", 20).leaf,
("Sub2", 5).leaf))
Run Code Online (Sandbox Code Playgroud)
这应该会产生这样的json树
{
"name" : "Root",
"value" : 100,
"children" : [
{
"name" : "Category1",
"value": 30
},
{
"name": "Category2",
"value": 20,
"children" : [
{
"name" : "Sub1",
"value" : 15"
} ....
]
]
Run Code Online (Sandbox Code Playgroud)
Writes为这棵树编写一个实例是很有可能的:
import scalaz.Tree, Tree.Node
implicit def treeWrites: Writes[Tree[(String, Int)]] =
new Writes[Tree[(String, Int)]] {
def writes(o: Tree[(String, Int)]) = o match {
case Node((name, value), children) => Json.obj(
"name" -> name,
"value" -> value,
"children" -> JsArray(children.map(Json.toJson(_)))
)
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个非常简单的实现,并将children为叶子显示一个空数组,但毫无疑问可以通过一些额外的工作来改进.
| 归档时间: |
|
| 查看次数: |
658 次 |
| 最近记录: |