Первый экранированный символ экранирует его в строковом литерале Javascript.
Второй escape экранирует его в строковом литерале JSON.
Выражение Javascript '{"a":"b:\\c"}'
соответствует строке '{"a":"b:\c"}'
.
Эта строка содержит один неоткрытый \
, который должен быть экранирован для JSON. Чтобы получить строку, содержащую \\
, каждый \
должен быть экранирован в выражении Javascript, в результате чего "\\\\"
.