変更できない外部プロセスからの JSON が渡されました。下流の Java プロセスが機能するには、この JSON 文字列を変更する必要があります。JSON 文字列は次のようになります。
{"widgets":"blah","is_dog":"1"}
ただし、次のようにする必要があります。
{"widgets":blah,"is_dog":"1"}
の周りの引用符を削除する必要がありますblah
。実際にblah
は、巨大な JSON オブジェクトなので、この質問のために単純化しました。そこで、 の前と後に 1 つString#replace
ずつ、2 つの呼び出しを行うことで問題を解決しようと考えました。blah
dataString = dataString.replaceAll("{\"widgets\":\"", "{\"widgets\":");
dataString = dataString.replaceAll("\",\"is_dog\":\"1\"}", ",\"is_dog\":\"1\"}");
これを実行すると、あいまいな実行時エラーが発生します。
違法な繰り返し
正規表現のマエストロは、私が間違っている場所を見つけることができますか? 前もって感謝します。