json - 如果键包含点(例如 IP 地址),如何访问 SuperObject 对象?
问题描述
如果键包含点,则代码无法访问 JSON 对象。
JSON:
"TableTraps": {
"1.3.6.1.4.1.100.108.0.3": {
"Vars": [
"alarmDescription",
"alarmPositionUnit",
"alarmChannel"
]
},
"1.3.6.1.4.1.100.108.0.4": {
"Vars": [
"alarmDescription",
"alarmPositionUnit",
"alarmChannel"
]
},
}
帕斯卡超对象代码:
TableTraps := LoadFromFile();
TrapOID := '1.3.6.1.4.1.100.108.0.3';
trapInfo := TableTraps.O[TrapOID];
结果,trapInfo == nil
但我期望 SuperObject 实例。我试图包装 json 密钥:
TrapOID := '"' + '1.3.6.1.4.1.100.108.0.3' + '"';
或者
TrapOID := '''' + '1.3.6.1.4.1.100.108.0.3' + '''';
它没有帮助。
如果 json 键包含点,我应该如何调用 SuperObject 来访问对象实例?
解决方案
相关问题帮助我找到了解决方案。suprobject.O
直接在解析对象上调用将点解析为 JSONPath 。因此,与其访问"1.3.6.1.4.1.100.108.0.3: {}"
它,不如尝试访问此 JSON:
"1": { "3": { "6": { "1": { "4": { "1": { "100": { "0": { "3": value
这里的解决方法:
TableTraps := LoadFromFile();
TrapOID := '1.3.6.1.4.1.100.108.0.3';
trapInfo := TableTraps.AsObject.O[TrapOID]; // NOTE: AsObject is required!
推荐阅读
- google-sheets - 在 Google 表格中,获取相邻单元格不为空的每个单元格的总和
- excel - 从多个工作表中收集 Excel 数据
- python - 使用 Apache Beam 处理非结构化数据的最佳实践
- java - 如何找到未命名的 JSON 对象的值?(org.json) (java)
- vb.net - VB.Net 用 CefSharp 设置文本框文本
- vb.net - 多个搜索词
- sql - 根据第一条路径聚合 URL
- uiimage - 那是不可能将 UIImage 添加到 UIAlertController 的 UIAlertAction 中的吗?
- swiftui - 如何在 swift UI 中围绕图像绘制文本
- android - 如何在提示时激活 FragmentContainerView