Pythonで、Jsonの値に改行が存在する場合に読み込む時の注意

Json の値に改行、など制御文字 '\t'、'\n'、'\r' 等、0 から 31 までの範囲のコードを
読む時に、
そのまま通常の読み方をすると、
json.decoder.JSONDecodeError: Invalid control character
になってしまう。
これを回避するには、json.load を、strict=False で実行する。

例)

with codecs.open('sample.json', 'r', 'utf-8') as f:
    dict = json.load(f, strict=False)

そもそも、値に改行文字、制御文字コードが入る JSON 規約違反ではなかったか?
ちょっと認識が曖昧です。
JavaScript では、
JSON.parse は、Syntax error になる。

Java の Jackson でも、

Illegal unquoted character ((CTRL-CHAR, code 9)): has to be escaped

しかし!
JavaGoogle gson の fromJson では、
エラーにならず、そのまま読込むことが可能だった。

Gson gson = new GsonBuilder().create();
Map<String, Object> map = gson.fromJson(jsonstr, new TypeToken<Map<String, Object>>(){}.getType());

これで読んで、改行がある値も、Map の Object に、String として
そのまま読んでくれた。