2014-12-17 2 views
0

다음과 같은 방식으로 Json 형식을 scala로 작성해야합니다. 같은 것을 구현하는 방법?Json 형식 - scala

{ 
"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" 
    } 
    ] 
    }, 

파일에 적용하려면 이처럼 트리 구조가 필요합니다. 당신이 플레이를 사용하는 경우

답변

0

은, 당신의 JSON 구조는 하나의 케이스 클래스로 표현 될 수있다 여기에

이 경우 클래스가 나는를 예측할 수없는 경우 어떤 노드

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)) 
+0

라고 샘플입니다 소스 및 대상의 개수 .1은 소스 1과 같을 수 있습니다. – user3823859

+0

Json 형식은 노드에 대한 자식 깊이를 가정하지 않습니다. 따라서 형식이 유지되는 한 나무의 깊이는 중요하지 않습니다. – mavarazy

+0

감사합니다. 이 질문에 대한 새로운 질문이 생겼습니다. source1, destination1 코드의 값을 할당하는 방법은 무엇입니까? – user3823859