我在Delphi中编写了一个控制台应用程序,用于查询来自多个位置的信息。此应用程序将由另一个进程启动,并且启动过程将捕获到STDOUT的输出。
我正在检索的信息将由调用应用程序解释以用于报告目的。将此数据输出到STDOUT的最佳方法是什么,以便可以轻松解析? JSON? XML? CSV?具体而言,这些数据是远程工作站信息,因此它会像运行流程一样将事情拉回来,并详细说明每个流程。
有没有人对此或建议有任何经验?
答案 0 :(得分:6)
如果您想要一些易于解析的东西,特别是如果必须快速完成,请使用最简单的格式,以便有效地传达您需要的信息。如果可以,请使用CSV,否则请尝试使用JSON。绝对不是XML,除非你真的,出于某种原因真的需要所有额外的复杂性。
答案 1 :(得分:5)
我会选择 Tab 分隔文件,如果您的数据(因为它似乎)不包含该字符,因为它允许最快速和最简单的处理。 所有其他格式都更慢,更复杂(即使它们给你更多的力量)。
最接近的匹配是CSV,但如果项目包含CSV定义的某些特殊字符(空格,逗号,引号等),则CSV需要引用该项目。
由于上述原因,Tab限定格式是最紧凑的格式,因此它具有最高的线上速度。 (因为你在谈论远程工作站,我认为你在某种网络上。)
另外,另外值得一提的是Tab限定格式非常易读,因此如果需要,调试更容易。
顺便说一句,如果您的数据流中存在Tab字符,您可以选择另一个您确定不可能的字符。 (例如#1等)。当然,如果你的使用场景允许,那就是这个。
HTH
答案 2 :(得分:0)
完全取决于启动过程的可用性。如果它是一个小的Delphi应用程序,CSV很容易用TStringList解析。 XML可能比JSON更重,但是Delphi附带了一个XML解析器和AFAIK,而不是一个JSON解析器。
答案 3 :(得分:0)
XML输出格式的优点是可以将其传递给XSL格式化程序,以便将XML数据转换为用户友好的HTML文档。 (你几乎have the cake and eat it too)......