【发布时间】:2014-11-18 16:42:54
【问题描述】:
我想将基于字符串的协议转换为 Json,性能是关键
基于字符串的协议类似于
<START>A12B13C14D15<END>
而json是
{'A':12,'B':13,'C':14,'D':15}
我可以正则表达式解析字符串,创建映射并序列化为 Json,但它似乎需要做很多工作,因为我需要实时转换流。 如果我只是进行字符串操作来获取 Json 输出会更有效吗?如何有效地进行转换?
【问题讨论】:
-
嗯,我相信没有像 Convert String to JSON with Alphabet as Property and int as Value 这样的库,所以我猜像你说的那样做:解析字符串,创建一个映射并序列化为一个 Json(如果你愿意,你可以使用 GSON)
-
嗯,开个玩笑,使用像 Jackson 或 GSON 这样的高效 JSON 库来进行编码和/或解码。它可能会比手写代码更快(除非花费大量时间)——您不需要创建
Map,只需使用流接口 (JsonGenerator)。而且生成速度超过 200MB/秒,真的,这不会是你的瓶颈(网络或 I/O 会) -
如果这很复杂,当然,您不需要创建一个 Map 然后将 Map 序列化为 JSON,但是您可以只使用简单的字符串连接生成 JSON。但如果它更复杂,使用 Maps 和 Arrays 并不是特别低效,而且更容易保持直线。
-
(当然要注意 JSON 对象键值应该用 双引号 (
") 括起来。)
标签: java regex json string parsing