diff --git a/tree/generate.go b/tree/generate.go index 322b27f..aa8b844 100644 --- a/tree/generate.go +++ b/tree/generate.go @@ -64,6 +64,7 @@ func (g *Generate) init() error { } g.root.ValueType = valueType + g.currentNode.ValueType = valueType for { if startIndex >= len(g.jsonDataByte) { @@ -83,6 +84,16 @@ func (g *Generate) init() error { return err } fmt.Println(jsonKey, valueType, jsonValue, startIndex) + // 创建节点, 并挂在到树上 + var newNode *Node + if g.currentNode.ValueType == ValueTypeArray || g.currentNode.ValueType == ValueTypeMap { + newNode = NewNode(jsonKey, jsonValue, valueType, g.currentNode) + g.currentParentNode = g.currentNode + g.currentParentNode.SonNodeList = append(g.currentParentNode.SonNodeList, newNode) + } else { + newNode = NewNode(jsonKey, jsonValue, valueType, g.currentParentNode) + } + g.currentNode = newNode } return nil }