Вы можете преобразовать словари в Данные, используя либо JSONSerialization
, либо протокол Codable
(на самом деле это протокол Encodable
в этом случае).Оба метода преобразуют объекты в данные JSON, которые затем можно отправить через сокет, как вы описали.(Возможно, вам потребуется преобразовать эти данные в строку UTF8 и сначала добавить нулевой терминатор.)
Однако протокол JSONSerialization
или Encodable
требует, чтобы все элементы вашего словаря имели типы, которые могутбыть закодирован.Если ваш словарь имеет тип [String:Any]
, вы не можете быть уверены, что некоторые значения имеют тип, который не может быть закодирован.
Вам необходимо ограничить вашу объектную модель типами, которые могут быть закодированы.Можете ли вы описать ваши данные более конкретно?В вашем примере кажется, что все записи имеют тип [String:String]
, который было бы тривиально преобразовать в JSON.