Tri*_*rch 2 json go jsonstream
我正在尝试写一个小的替代品i3status,这是一个与符合此协议的i3bar通讯的小程序。他们通过stdin和stdout交换消息。
两个方向上的流都是json对象的无限数组。从i3bar到i3status(我要替换)的流的开始看起来像这样:
[
{"name": "some_name_1","instance": "some_inst_1","button": 1,"x": 213,"y": 35}
,{"name": "some_name_1","instance": "some_inst_2","button": 2,"x": 687,"y": 354}
,{"name": "some_name_2","instance": "some_inst","button": 1,"x": 786,"y": 637}
,{"name": "some_name_3","instance": "some_inst","button": 3,"x": 768,"y": 67}
...
Run Code Online (Sandbox Code Playgroud)
这是代表点击的对象的“数组”。该阵列将永远不会关闭。
我的问题现在是:解析此问题的正确方法是什么?
显然,我无法使用该json库,因为这不是有效的json对象。
编写一个自定义阅读器函数(或解码器),该函数执行“流数组解析”,如下所示:
[则返回错误(不能是数组)。json.Decoder.Decode“下一个”项目。,继续#3中的for循环。]然后退出#3中的for循环。| 归档时间: |
|
| 查看次数: |
1047 次 |
| 最近记录: |