diff options
| author | Felix Hanley <felix@userspace.com.au> | 2018-11-20 00:54:42 +0000 |
|---|---|---|
| committer | Felix Hanley <felix@userspace.com.au> | 2018-11-20 04:43:29 +0000 |
| commit | 505c75b306322a22aef900aac636100eab556be9 (patch) | |
| tree | ca0af0d717a34efe10a890dced90898fc2a153e7 /json/node.go | |
| parent | bbf5d9bb88ee4fe955d810e90aa90c302e1dc02d (diff) | |
| download | query-505c75b306322a22aef900aac636100eab556be9.tar.gz query-505c75b306322a22aef900aac636100eab556be9.tar.bz2 | |
Jsonpath WIP
Diffstat (limited to 'json/node.go')
| -rw-r--r-- | json/node.go | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/json/node.go b/json/node.go index fd61ed1..67043a1 100644 --- a/json/node.go +++ b/json/node.go @@ -43,6 +43,16 @@ func (n Node) String() string { return fmt.Sprintf("[%s] %s(%s)", NodeNames[n.Type], n.DataType, n.Data) } +func (n Node) PrintTree(level int) { + for i := 1; i <= level; i++ { + fmt.Printf(" ") + } + fmt.Println(n) + for _, c := range n.ChildNodes() { + c.PrintTree(level + 1) + } +} + // ChildNodes gets all child nodes of the node. func (n *Node) ChildNodes() []*Node { var a []*Node @@ -108,7 +118,7 @@ func parseValue(x interface{}, top *Node, level int) { switch v := x.(type) { case []interface{}: for _, vv := range v { - n := &Node{Type: ElementNode, level: level, DataType: "array"} + n := &Node{Type: ElementNode, level: level, DataType: "arrayitem"} addNode(n) parseValue(vv, n, level+1) } |
