- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个为 iPhone (Objective-C) 编写的移动应用程序,允许用户使用特定格式导入数据。我用 Java 为 Android 编写了相同的应用程序,并且用户开始要求导入的能力。数据的格式是一种可移植的标准,编写此类应用程序的人必须能够导入和导出。
虽然我确实用 Objective-C 写了我要问的内容,但我有一种感觉,如果我用不同的方式来做,我可以让我的生活变得更轻松一些。所以我想问一下你在Java中如何解析下面的TLV。我不需要代码,只需要要点。
这是 TLV 格式:
<Type:Length>Value<Type:Length>Value<Type:Length>Value<end>
每条记录均以 <
开头并以 <end>
结尾。记录中的\n 是可以接受的,零长度值也可以。
这是描述四种不同汽车的示例输入,请注意多行记录和零长度值。
<make:4>ford<model:7>contour<color:3>red<end>
<make:5>mazda<model:3>mpv<color:5>black<end>
<make:3>bmw
<model:3>335
<color:6>yellow
<end>
<make:7>unknown<model:0><color:4>grey<end>
解析数据后,我会将其插入到 SQLite 数据库中,因此最终按每条记录循环数据将产生一堆字符串,我可以将它们用作 INSERT 语句的一部分。
感谢您提供的任何想法!
尼克
最佳答案
非常奇怪的格式。有发布的规范吗?
您可以尝试进行字符串标记化路线。您可以利用内置的 Java 正则表达式来帮助匹配,甚至只使用基本的 String类方法(分割和修剪是你的 friend )。基本上只是这样做:
String[] lines = input.split("<end>");
for(String line : lines)
{
line = line.trim();
String[] sublines = line.split("<");
for(String subline : sublines)
{
subline = subline.trim();
...additional breaking, trimming, branching...
}
}
类型长度是一个有趣的验证组件,但对于现代语言来说有点奇怪。我要问的一个大问题是期望什么编码。 UTF-8? 7 位 ASCII?奇怪的东西?
我的 friend 会把上面的伪代码称为 hack,并告诉我做类似 JavaCC 的事情。 ,但我有一些 Nerd 和不切实际的 friend 。 ;)
关于java - 你会如何用 Java 解析这个 TLV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6632891/
什么是 TLV? 在代码中放置钩子(Hook)(函数)而不是 if/else? 如果我有一段代码在不同的平台上运行,在代码的不同位置,我可以放置 TLV 函数 Hook 来识别我在哪个平台上并相应地做
我在他们所指的文档中找到了 简单的 TLV 和 BER-TLV .我查看了大多数 EMV 和 GP 文档,但他们没有提到不同之处。 谁能帮我理解两者的区别? 最佳答案 ISO/IEC 7816-4 中
我有一个为 iPhone (Objective-C) 编写的移动应用程序,允许用户使用特定格式导入数据。我用 Java 为 Android 编写了相同的应用程序,并且用户开始要求导入的能力。数据的格式
我的 SMS 服务提供商要求我在通过 SMPP 连接到他时设置以下 TLV 参数: 价格点 (0x1400) 产品 (0x1401) 合作伙伴角色 ID (0x1402) 如何在 Kannel 中进行
我正在开发用于读取 EMV 卡的智能卡读卡器。我正在处理一张万事达卡,我试图读取特定记录。结果显示读数很好,但是当我解析结果时,它们似乎不遵循 TLV 标准,其中结果采用 Tag/Template-L
我正在开发支持 EMV 卡的 POS 应用程序。我能够从 TLV 中的 Verifone MX 读卡器读取卡数据,但在将 TLV 数据解码为可读数据时遇到问题。 我能够将数据拆分为 TLV 标签及其值
好的 - 我有这个十六进制数据和标签列表: 原始数据可能是这样的: 5F201A54444320424C41434B20554E4C494D49544544205649534120204F07A000
我的方法 parseTLV() 有时无法正确地解析为构造值(子 TLV)。我使用过滤器 ((tag & 0x20)!= 0) 来检测构造的值,但有时它无法按预期工作。 例如 70178C159F020
我正在处理 Mastercard Paypass 交易,我发送了一个 READ RECORD 命令并得到了结果: 70 81 AB 57 11 54 13 33 00 89 60 10 83 D2 5
是否可以使用 boost 序列化带有 TLV 编码的字符串?或者我应该先编码,然后使用 boost 序列化二进制数据?如果是那么如何编码为TLV? 最佳答案 Boost 的二进制序列化存档已经使用了类
我正在寻找一种使用 Java 翻译 EMV 响应的方法,就像使用此在线选项一样: http://www.emvlab.org/tlvutils/ 你把像这样的 EMV 响应放在哪里: 6f3a8407
我正在使用 OnlineCity SMPP 客户端库发送 SMS。它工作正常。但是根据TRAI的新指南,我们需要在发送短信时添加以下新的TLV参数 group = smpp-tlv name = En
我正在使用 jpos 库构建一个简单的电子购买金融消息,我正在使用通用打包器来打包我的消息字段,问题出现在字段 48(TLV 字段)处。 这里是字段 48 的打包参数。
我需要将一个 C 结构转换为 TLV 格式并将其发送。有人可以帮我吗?我的结构是一个真正的嵌套结构,有很多指向不同结构的间接(指针)和很多 void *。所以,我被困住了,需要帮助。 struct a
我想读取 Java 卡上的 TLV 编码证书(NXP JCOP J3D081、JCOP 版本 2.4.2、Java 卡版本 3.0.1 Classic)。 cap 文件已成功创建,但当我尝试将其安装到
要构建嵌套 TLV 元素(例如 6F1A840E315041592E5359532E4444463031A5088801025F2D02656E),我使用以下数据结构: typedef struct
我正在尝试使用 C 来编码/解码 tlv 消息数据。实际上我是 TLV 格式的新手。我刚刚从谷歌找到了一些代码,但我不明白它们。 unsigned char *tlv_buffer = NULL; i
我想解析 TLV 字符串并在给出标签值时获取值。 示例: 000201021642333310011114235204546757034445802IN5910My Company6005Vegas6
例如我有这样的R-APDU uchar rApdu[] = {0x6F, 0x35 ,0x84 ,0x08 ,0x45 ,0x4F ,0x50 , 0x43 ,0x43 ,0x41 ,0x52
我是 Java 的新手,所以我想使用标准解决方案来完成标准任务。标签和值的长度未知。 最佳答案 您可以使用这个 BER-TLV 解析器:source code on git。 示例: 如何解析 byt
我是一名优秀的程序员,十分优秀!