Skip to content

Instantly share code, notes, and snippets.

@leetschau
Last active November 21, 2017 07:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save leetschau/19264014d8e7947f10c085c68a90a63e to your computer and use it in GitHub Desktop.
Save leetschau/19264014d8e7947f10c085c68a90a63e to your computer and use it in GitHub Desktop.
def meta = '''
{
"img": "../../../../static/img/treeImg/project.png",
"name": "财务预算",
"id": "1510126562947",
"open": true,
"level": 0,
"select": false,
"dictoryList": [
{
"id": "1510130876915",
"name": "1二",
"level": 1,
"open": true,
"dictoryList": [
{
"id": "1510130883657",
"name": "222",
"level": 2,
"open": true,
"dictoryList": [
{
"id": "1510281745073",
"name": "4444",
"level": 3,
"open": true,
"dictoryList": [],
"select": false,
"fileFlag": "file"
}
],
"select": false,
"fileFlag": "folder"
}
],
"select": false,
"fileFlag": "folder"
},
{
"level": 1,
"open": true,
"dictoryList": [],
"select": false,
"fileFlag": "file"
},
{
"id": "1510190594887",
"name": "222",
"level": 1,
"open": true,
"dictoryList": [
{
"level": 2,
"open": true,
"dictoryList": [],
"select": false,
"fileFlag": "file"
},
{
"level": 2,
"open": true,
"dictoryList": [],
"select": false,
"fileFlag": "file"
}
],
"select": false,
"fileFlag": "file"
},
{
"id": "1510276951209",
"name": "切尔奇无",
"level": 1,
"open": true,
"dictoryList": [],
"select": false,
"fileFlag": "file"
},
{
"id": "1510277006977",
"name": "121",
"level": 1,
"open": true,
"dictoryList": [],
"select": false,
"fileFlag": "folder"
},
{
"id": "1510277087057",
"name": "大师傅",
"level": 1,
"open": true,
"dictoryList": [],
"select": false,
"fileFlag": "file"
}
]
}
'''
def data = new groovy.json.JsonSlurper().parseText(meta)
// or load from file:
// data = new groovy.json.JsonSlurper().parse(new File("d:\\docs\\data.json"))
def getModelInfo(obj, res) {
if (obj.fileFlag == "file" && obj.id) {
res.add([id: obj.id, name: obj.name])
} else {
obj.dictoryList?.each { node -> getModelInfo(node, res) }
}
}
def res = []
getModelInfo(data, res)
println(res)
// Result: [[id:1510281745073, name:4444], [id:1510190594887, name:222], [id:1510276951209, name:切尔奇无], [id:1510277087057, name:大师傅]]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment