以编程方式区分数据

Programatically tell the difference between data

我正在将大量文件转换为 XML,每个文件都是 XML、JSON、CSV 或 PSV。要进行转换,我需要在不查看文件扩展名的情况下知道文件的数据类型(有些来自 API's)。有人建议我尝试按每种类型解析每个文件,直到获得成功,但这效率很低,而且 CSV 不能轻易解析,因为它本质上只是一个文本文件(与 PSV 相同)。

有人知道我能做什么吗?谢谢。

你可以有一些 "pre-parsing":

  • 要么以 XML 声明开始,要么直接以根节点开始,XML file 的第一个字符应该是 <.
  • 如果 JSON 建立在对象上,JSON file 的第一个字符只能是 {,或者如果 JSON 建立在对象上,则 [在数组上。
  • 对于 CSV 和 PSV(我猜 PSV 代表点分隔值?),文件的每一行代表一个特定的记录。

因此通过检查第一个字符,您可能会发现 XML and/or JSON 解析毫无意义。

解析文件的第一行应该足以决定文件格式是 CSV 还是 PSV。