支持非整齐的list
This commit is contained in:
parent
5939795603
commit
df00e13602
@ -149,21 +149,54 @@ func (dj *DynamicJSON) buildTpl(root *JSONode, tplList *[]string, valList *[]int
|
|||||||
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
*tplList = append(*tplList, "{")
|
if len(root.Child) == 0 {
|
||||||
|
|
||||||
|
switch val := root.Value.(type) {
|
||||||
|
case string:
|
||||||
|
*valList = append(*valList, val)
|
||||||
|
if root.IsHasLastBrother {
|
||||||
|
*tplList = append(*tplList, "\"%v\",")
|
||||||
|
} else {
|
||||||
|
*tplList = append(*tplList, "\"%v\"")
|
||||||
|
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
if root.IsHasLastBrother {
|
||||||
|
*tplList = append(*tplList, "%v,")
|
||||||
|
} else {
|
||||||
|
*tplList = append(*tplList, "%v")
|
||||||
|
|
||||||
|
}
|
||||||
|
*valList = append(*valList, root.Value)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
*tplList = append(*tplList, "{")
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
for _, node := range root.Child {
|
for _, node := range root.Child {
|
||||||
dj.buildTpl(node, tplList, valList)
|
dj.buildTpl(node, tplList, valList)
|
||||||
}
|
}
|
||||||
if root.IsHasLastBrother {
|
if !root.IsIndexNode {
|
||||||
*tplList = append(*tplList, "},")
|
if root.IsHasLastBrother {
|
||||||
} else {
|
*tplList = append(*tplList, "},")
|
||||||
if root.IsSlice {
|
|
||||||
*tplList = append(*tplList, "]")
|
|
||||||
} else {
|
} else {
|
||||||
*tplList = append(*tplList, "}")
|
if root.IsSlice {
|
||||||
|
*tplList = append(*tplList, "]")
|
||||||
|
} else {
|
||||||
|
*tplList = append(*tplList, "}")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if len(root.Child) > 0 {
|
||||||
|
if root.IsHasLastBrother {
|
||||||
|
*tplList = append(*tplList, "},")
|
||||||
|
} else {
|
||||||
|
*tplList = append(*tplList, "}")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return tplList, valList
|
return tplList, valList
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,5 +26,6 @@ func TestJSON(t *testing.T) {
|
|||||||
tree.SetValue("slice.[0].name", "zhang")
|
tree.SetValue("slice.[0].name", "zhang")
|
||||||
tree.SetValue("slice.[1].name", "de")
|
tree.SetValue("slice.[1].name", "de")
|
||||||
tree.SetValue("slice.[2].name", "man")
|
tree.SetValue("slice.[2].name", "man")
|
||||||
|
tree.SetValue("slice.[3]", "zhangdeman")
|
||||||
fmt.Println(tree.String())
|
fmt.Println(tree.String())
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user