我正在尝试使用JSON格式,并且不确定如何使用它来构建族树。这就是我所拥有的(为了保持简单,我只列出父亲,他的孩子以及这些孩子是否自己有孩子。我没有列出配偶的名字。)
{
"Name": "Jonathan Smith",
"Children": [
{
"name": "Adam",
"Children": [
{
"name": "Suzy",
"children": ""
},
{
"name": "Clare",
"children": ""
},
{
"name": "Aaron",
"children": ""
},
{
"name": "Simon",
"children": ""
}
]
},
{
"name": "Timmy",
"Children": ""
},
{
"name": "Alison",
"Children": [
{
"name": "Natasha",
"children": ""
},
{
"name": "Zak",
"children": ""
}
]
}
]
}
虽然,它的验证很好,但我不确定是否有最好的方法(例如,我的方法是DRY和可扩展的)。
答案 0 :(得分:4)
最简单的方法:
{
"Jonathan Smith": {
"Adam": {
"Suzy": {},
"Clare": {},
"Aaron": {},
"Simon": {}
},
"Timmy": {},
"Alison": {
"Natasha": {}, "Zak": {}
}
}
}
更强大的结构:
{
"Smiths": {
"Jonathan Smith": { "id": 0},
"Adam Smith": { "id": 1, "father": 0 },
"Suzy Smith": { "id": 4, "father": 1 },
"Clare Smith": { "id": 5, "father": 1 },
"Aaron Smith": { "id": 6, "father": 1 },
"Simon Smith": { "id": 7, "father": 1 },
"Timmy Smith": { "id": 2, "father": 0 },
"Alison Smith": { "id":3, "father": 0 },
"Natasha Smith": { "id": 8, "father": 3 },
"Zak Smith": { "id": 9, "father": 3 }
}
}
添加更多关系,母亲,丈夫和妻子。
{
"Smiths": {
"Jonathan Smith": { "id": 0, "wife": [10]},
"Suzan Smith": { "id": 10, "born": "Suzan Jones", "husband": [0] },
"Adam Smith": { "id": 1, "father": 0, "mother": 10 },
"Suzy Smith": { "id": 4, "father": 1 },
"Clare Smith": { "id": 5, "father": 1 },
"Aaron Smith": { "id": 6, "father": 1 },
"Simon Smith": { "id": 7, "father": 1 },
"Timmy Smith": { "id": 2, "father": 0, "mother": 10 },
"Alison Smith": { "id":3, "father": 0, "mother": 10 },
"Natasha Smith": { "id": 8, "father": 3 },
"Zak Smith": { "id": 9, "father": 3 }
}
}
有时使用Javascript
使用JSON要容易得多var familyTree = {}
familyTree["Dick Jones"] = { id: 1234, father: 213 }
这将允许您添加,删除,使用函数,能够检查错误,然后通过调用获取生成的JSON:
JSON.stringify(familyTree)
答案 1 :(得分:0)
你必须要注意,因为你添加了格式json数据覆盖。尝试使用一种结构,允许您以简单的方式响应您想要执行的查询。
答案 2 :(得分:0)
试试这个:
{'name': 'John'}, {'name': 'Jack', 'child_of': 'John'}, {'name': 'Charlie', 'child_of': 'Jack', 'grand_child_of': 'John'}
答案 3 :(得分:0)
在JSON中使用树可能很困难,但也许您可以使用级别的概念(本例中的代),这样您就可以了解叔叔,表兄弟等。
[
{
"id":100,
"name":"Jhon Smith",
"generation":1,
"children":[
{
"id":101,
"name":"Michael Smith",
"generation":2,
"children":null
},
{
"id":102,
"name":"Diana Smith",
"children":[
{
"id":301,
"name":"Britney Smith",
"generation":3,
"children":null
}
]
}
]
},
{
"id":200,
"name":"Richard Smith",
"generation":1,
"children":[
{
"id":101,
"name":"Michael Smith",
"generation":2,
"children":null
},
{
"id":102,
"name":"Diana Smith",
"generation":2,
"children":null
}
]
}
]