asn.1 - 如何解析 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 类型定义,而不仅仅是值表示法。
可以从我为之工作的 OSS Nokalva ( https://www.oss.com ) 获得这样一种工具。这些 ASN.1 工具还支持 XML 编码规则 (XER) 和 JSON 编码规则 (JER),因此您可以根据需要以 JSON 或 XML 格式生成输出。您可以在免费的 ASN.1 Playground 网站https://asn1-playground.oss.com上尝试该功能,以查看您尝试解析的日志文件是否是有效的 ASN.1 值表示法。
推荐阅读
- javascript - Google 脚本将不同电子表格中的两列与 if 进行比较
- c# - 使用 DataContractJsonSerializer 反序列化时控制对象创建
- mysql - 使用 ESCAPE 关键字进行 SQL 转义 - 如果转义字符出现在 LIKE 值中怎么办
- javascript - 无法在 Jquery 的 iframe 中选择元素?
- google-app-engine - 如何将应用引擎数据存储中的数据存储到 csv 文件中?
- erlang - 二进制类型的模式匹配不能使用变量的值
- java - 当我运行作业时,springBatch 中的 ItemReadListener 没有运行
- python - 如何在 Python 中计算投影 UTM(具有不同区域)之间的距离
- mysql - MySql 触发器未创建并给出语法错误
- python - `copy.deepcopy` 是否与 Python 中的 `NamedTuple` 一起使用?