java - 从 JSON 字符串中解析单个值的最快方法
问题描述
我有一个从以下 JSON 格式的 websocket 获得的字符串。我想要一种非常低延迟的方式来解析c
与 key 关联的值C
。我收到的每个数据包的键名都相同,但值可能不同。因此,密钥C
将保持不变,但值可能会更改c
为更长的值。在我现实生活中的应用程序中,里面的条目数量X
并Y
可以更长。
我尝试了几种不同的方法,包括使用 Jackson [1] 解析单个字段,将完整字符串解析为JsonNode
,但它们都太慢(超过 50 微秒)。我想在"C"
使用 [2] 的字符串中找到位置,然后在之后获取接下来的几个字符,但问题是值 ,c
是可变长度的,所以这很棘手。
String s = {"A":"a","B":"b","data":[{"C":"c","X":[["3.79","28.07","1"],["3.791","130.05","3"],["3.792","370.8958","5"]],"Y":[["3.789","200","1"],["3.788","1238.1709","4"],["3.787","513.4051","3"]]}'
我想要这样的东西:
String valueOfC = getValueOfC(s) // return in only a few microseconds
解决方案
s.substring(s.indexOf("\"data\":[{\"C") + 4, s.indexOf("\"",s.indexOf("\"data\":[{\"C") + 4)));
这是亚微秒。
推荐阅读
- firebase - 如何检测与 google 和 firebase 的首次身份验证?
- angular - debounceTime rxjs 运算符和输入 keyup 函数的 http 请求问题
- r - 从另一个数据框 r 中添加/减去数据框行
- android - 使用相同布局中的过渡动画布局更改
- python - 我的脚本没有提取所有广告详细信息,而且我没有得到正确的数字
- javascript - 使用“chrome.webNavigation.onCompleted.addListener”时获取“”Uncaught TypeError:无法添加侦听器“
- android - Recyclerview 不显示警报对话框中的数据列表
- ajax - 块上传不适用于大文件 - Laravel 5.8
- aws-lambda - 如何从 Postman 调用受授权人保护的 Lambda?
- powershell - 如何使用 PSM1 文件安装模块?