首页 > 解决方案 > 如何解析 ASN.1 值符号格式

问题描述

我正在为一家以 ASN.1 值符号格式获取日志的公司工作。我需要设置一个解析器来从中提取数据。我尝试过天真的正则表达式,但我想尝试一种可以从此类文件中提取数据的方法,例如 JSON/XML 文件。

例如:对于这样的文件,

value Rocket ::= {
  name "Falcon",
  -- use default for the message --
  fuel solid,
  speed mph : 18000,
  payload {
    "Car",
    "GPS"
  }
}

我想解析这个,

一个根节点( Rocket )

值节点(名称)=“猎鹰”

另一个封装了数组有效载荷的节点(“汽车”、“GPS”)

这个怎么做 ?任何库或方法都会有所帮助。在这种情况下,有一个模式对此有什么帮助?以及如何根据架构验证 asn.1 并从 asn1 中提取信息。价值观?

标签: asn.1

解决方案


像这样解析 ASN.1 符号的最简单方法是使用商业 ASN.1 工具,该工具支持在运行时(而不仅仅是在编译时)解析 ASN.1 值符号。请注意,您仍然需要值的 ASN.1 类型定义,而不仅仅是值表示法。

可以从我为之工作的 OSS Nokalva ( https://www.oss.com ) 获得这样一种工具。这些 ASN.1 工具还支持 XML 编码规则 (XER) 和 JSON 编码规则 (JER),因此您可以根据需要以 JSON 或 XML 格式生成输出。您可以在免费的 ASN.1 Playground 网站https://asn1-playground.oss.com上尝试该功能,以查看您尝试解析的日志文件是否是有效的 ASN.1 值表示法。


推荐阅读