Для справки: я читаю журналы устройств с устройств Android и IOS, используя adb logcat и idevicesyslog.Конкретные журналы, которые мне нужны, - это словари swift / c # / java / etc, преобразованные в строки через adb logcat / idevicesyslog.Я надеюсь взять эти журналы, которые содержат строки, подобные JSON, и преобразовать их в действительный JSON.По большей части это работает без проблем.
Однако иногда эти журналы / строковые выходные данные содержат такие символы, как (\ 134, \ M, \ t и т. Д.), Которые вызывают проблемы при демаршаллинге в JSON.Я демарширую их в JSON, чтобы отправить их в другое место.
Например, необработанный журнал устройства может иметь что-то вроде следующего: {"foo": "bar", "foo": "bar \ 134 / \ 134 /bar \ 134 / bar \ 134 / bar "} {" foo ":" bar "," foo ":" bar \ M / \ 134 / bar \ 134 / bar \ M / bar "}
Этиприводят к ошибкам типа «panic: недопустимый символ« M »в escape-коде строки» при попытке демаршировать
Большинство журналов не содержат этих символов, поэтому это не проблема.Однако, некоторые крайние случаи содержат их, и это создает проблемы.
Есть ли правильное имя для этих типов символов?(c # escape-символы?) Есть ли пакет golang, который может удалить их из строки?В настоящее время я просто удаляю те, с которыми сталкиваюсь, если они появляются в строке, но я чувствую, что есть лучший способ сделать это.Добавление тех, с которыми я сталкиваюсь, в список удаляемых символов не является хорошей практикой.
Подводя итог,
журнал idevicesyslog дает мне строку, похожую на такую: {"foo": "bar", "foo": "bar \ 134 / \ 134 / bar \ 134 / bar \ 134 / bar"}
Это не может быть распаковано.
Журнал idevicesyslog дает мне такую строку: {"foo": "bar", "foo": "bar bar bar bar"}
Это можно разобрать.
Текущее решение: добавить новые, с которыми я сталкиваюсь, в списоки удалите их перед демаршалированием
Обнадеживающее решение: обнаружите автоматически и удалите