Json格式-scala
我需要在scala中以以下方式构建Json格式。如何实现相同的功能Json格式-scala,json,scala,Json,Scala,我需要在scala中以以下方式构建Json格式。如何实现相同的功能 { "name": "protocols", "children": [ { "name": "tcp", "children": [ { "name": "source 1", "children": [ { "name": "destination 1", "children": [ { "name": "packet 1
{
"name": "protocols",
"children": [
{
"name": "tcp", "children": [
{
"name": "source 1",
"children": [
{
"name": "destination 1",
"children": [
{
"name": "packet 1"
},
{
"name": "packet 4"
}
]
},
{
"name": "destination 2","children": [
{
"name": "packet 1"
},
{
"name": "packet 4"
}
]
},
我需要这样的树结构才能写入文件 如果您使用play,那么json结构可以用单个case类表示 下面是一个示例,其中这个case类称为Node
import play.api.libs.json.Json
case class Node(name: String, children: List[Node] = Nil)
implicit val format = Json.format[Node]
val childSource1 = Node("destination 1", List(Node("packet 1"), Node("packet 4")))
val childSource2 = Node("destination 2", List(Node("packet 1"), Node("packet 4")))
val source1 = Node("source 1", List(childSource1, childSource2))
val example = Node("protocols", List(Node("tcp", List(source1))))
Json.prettyPrint(Json.toJson(example))
如果我不能预测源和目标的数量,那该怎么办呢?它可能类似于源1到源n?Json格式不会对节点的子级深度做出任何假设。所以树的深度并不重要,只要格式保持不变。谢谢。还有一个疑问,因为我是新手。如何在代码中将source1,destination1分配给值?你的意思是反序列化?不。在我的代码中,实际上每个数据包都有protocol,source,destination变量。如何将其分配给json变量?