当BI工具从 JSON 文件中读取表格数据时,某些情况下也会出现类似的“裂缝陷阱”(JSON chasm trap),比如下面的 JSON 文件:
另见〖关于JSON的“风扇陷阱”〗
{
"results": [
{
"User": "Tim",
"Skills": [
{
"Skill": "SQL",
"SkillRating": 3
},
{
"Skill": "JavaScript",
"SkillRating": 4
},
{
"Skill": "Python",
"SkillRating": 5
}
],
"Languages": [
{
"Language": "English",
"LangRating": 5
}
]
},
{
"User": "Bob",
"Skills": [
{
"Skill": "SQL",
"SkillRating": 5
}
],
"Languages": [
{
"Language": "English",
"LangRating": 4
},
{
"Language": "French",
"LangRating": 3
},
{
"Language": "Spanish",
"LangRating": 5
},
{
"Language": "Chinese",
"LangRating": 3
}
]
},
{
"User": "Amy",
"Skills": [
{
"Skill": "SQL",
"SkillRating": 4
},
{
"Skill": "Python",
"SkillRating": 4
},
{
"Skill": "PHP",
"SkillRating": 5
}
],
"Languages": [
{
"Language": "English",
"LangRating": 5
},
{
"Language": "German",
"LangRating": 2
}
]
}
]
}
当使用 Tableau 读取该文件时,会自动展开其中的嵌套数组以形成表格,读取结果如下:
在读取嵌套的 JSON 数据结构为二维表数据时,为了避免发散就需要避免对其进行扁平化展开,解决办法就是拆分识别成多张小表,比如该例中可识别成三张小表: