#
シェルスタイルの行コメントを含む「リラックスした」JSON データを操作するシステムを扱っています。
[
{
# Batman
"first-name": "Bruce",
"last-name": "Wayne"
},
{
# Superman
"first-name": "Clark",
"last-name": "Kent"
}
]
私が取り組んでいるシステムの一部では、JSON 入力を解析するためにjson-libを使用しています。
これらのコメントから追加の注釈を抽出する必要がありますが、json-lib はそれらを読み取るための API を提供せずにそれらを破棄しているようです。
JSONObject map = (JSONObject)JSONSerializer.toJSON("{\n"+
" # Batman\n" + // note the shell-style # comment
" \"first-name\": \"Bruce\",\n" +
" \"last-name\": \"Wayne\"\n" +
"}");
System.out.println(map.toString());
/* <<'OUTPUT'
* {"first-name":"Bruce","last-name":"Wayne"}
* OUTPUT
* note the absence of the shell-style comment
*/
コメントは JSON 仕様の一部ではないため、これは理にかなっています。幸いなことに、そもそもコメントを解析するときに json-lib が詰まることはありません。
注:
- 他のシステムはこの同じ JSON を使用し、注釈はそれらに対して透過的である必要があるため、代わりにコメントのプロパティを追加して JSON 構造を変更することはできません。
- システム内のすべてのコンポーネントとオブジェクトが生の JSON ソースにアクセスできるわけではありません。1 つのコンポーネントがファイルを読み取り、JSONlib を使用して解析し、デシリアライズされたマップなどを渡します。
JSON 入力の処理中にこれらのコメントを読み取って解析するにはどうすればよいですか? それらを読み取って JSON 内の位置に関連付けることができるライブラリはありますBatman
か?コメントを「Bruce Wayne」エントリに簡単に接続できますか?
私は現在 json-lib を使用していますが、他の JSON ライブラリを調査することにもオープンであり、YAML などの JSON を拡張する他の言語を使用することにも同様にオープンです。私の入力のコメント。