問題
有限オートマトン (理論的に正規表現に相当するもの) は、再帰構造を解析できません。内部引用符と内部引用符を使用できるため、正規表現を使用して問題を解決することはできません。
最新の正規表現エンジンは、いくつかの拡張機能を使用してこの問題を解決できますが、引用符内の引用符を探して時間を無駄にしないでください。本格的な JSON パーサーを実際に作成していることにすぐに気付くでしょう。
@johnchen902 が述べたように、チューリング マシンを利用したパーサーでさえあいまいさを処理できないため、壊れた JSON の修正を提案しようとしない方がよいでしょう。
ソリューション
専用ユーティリティでJSONを作成
指定された文字列は有効な JSON ではありません。おそらく文字列連結を使用して作成されていますが、これは正しくエスケープされないため、一般的には悪い考えです。gsonなどの Java データ構造から JSON を構築できる JSON ライブラリを使用する必要があります。オブジェクトのリストを作成し、オブジェクトからオブジェクトへの辞書を追加して、ライブラリにエスケープと変換を行わせます。
作成者にバリデーターの使用を依頼する
外部ソースから文字列を受け取った場合、使用できる有効なjson を要求することは完全に正当です。作成者は文字列をつなぎ合わせたと思いますが、これは構造化言語を構築するための間違った方法です。元の作成者に、JSON の作成に標準ライブラリを使用するか、少なくともバリデーターを使用するよう依頼してください。最新のプログラミング言語はすべて、これらのメカニズムを提供します。
