このプロトコルに準拠した i3bar と通信する小さなプログラムである i3status の小さな代替品を作成しようとしています。それらは 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}
...
これは、クリックを表すオブジェクトの「配列」です。配列は決して閉じません。
私の質問は今です:これを解析する正しい方法は何ですか?
json
これは有効なjsonオブジェクトではないため、明らかにライブラリを使用できません。