建议多级csv文件

时间:2012-10-03 13:58:28

标签: xml csv nested idioms

我有一些最终用户想要的CSV文件数据。每个条目都有一个父节点和零个或多个子节点。例如,父节点可能包含:

Name, Id, Date

虽然子节点可能包含:

Name, ChildId

所以我要搜索的是用CSV表示多级数据的标准。在XML中,我可以轻松创建子节点。在CSV中执行此操作的最佳方法是什么?我想创建一个脚本来提取这些数据,而不会混淆什么是父数据和什么是子数据。

在XML中,这可能如下所示:

<Parent Name="name1">
<Child Name="ChildName1"></Child>
<Child Name="ChildName2"></Child>
</Parent>

<Parent Name="name2">
<Child Name="ChildName1"></Child>
<Child Name="ChildName2"></Child>
</Parent>

1 个答案:

答案 0 :(得分:1)

可以将XML最小化为:

<names>
 <name1>
  <childName1/>
  <childName2/>
 </name1>

 <name2>
  <childName1/>
  <childName2/>
 </name2>
</names>

以及CSV:

name1  ChildName1
name1  ChildName2
name2  ChildName1
name2  ChildName2

使用这样的JSON序列化:

{"names":
 [
  {
  "name1":
   [
    {
    "childName1":""
    },
    {
    "childName2":""
    }
   ]
  },
  {
  "name2":
   [
    {
    "childName1":""
    },
    {
    "childName2":""
    }
   ]
  }
 ]
}

以行为导向,XML可以是:

<names>
 <name1 name="ChildName1|ChildName2">
 <name2 name="ChildName1|ChildName2">
</names>

相应的CSV:

name1  ChildName1|ChildName2
name2  ChildName1|ChildName2

相应的JSON:

{"names": [{"name1":"ChildName1|ChildName2"},{"name2":"ChildName1|ChildName2"}]}

<强>参考