Как мне разобрать [String: Any] () (Swift Dictionary) для сервера TCP / IP? - PullRequest
0 голосов
/ 05 июля 2019

Как разобрать [String : Any]() как

{"Name":"","Device":"","Auth":"","Version":"","ObjectID":""}

, каждый из которых заканчивается нулевым символом (через сокет TCP / IP).

Я могу легко отправить строку на сервер TCP / IP, но не смог отправить словарь.

Было бы замечательно, если бы кто-нибудь предложил какие-либо решения !!

1 Ответ

2 голосов
/ 05 июля 2019

Вы можете преобразовать словари в Данные, используя либо JSONSerialization, либо протокол Codable (на самом деле это протокол Encodable в этом случае).Оба метода преобразуют объекты в данные JSON, которые затем можно отправить через сокет, как вы описали.(Возможно, вам потребуется преобразовать эти данные в строку UTF8 и сначала добавить нулевой терминатор.)

Однако протокол JSONSerialization или Encodable требует, чтобы все элементы вашего словаря имели типы, которые могутбыть закодирован.Если ваш словарь имеет тип [String:Any], вы не можете быть уверены, что некоторые значения имеют тип, который не может быть закодирован.

Вам необходимо ограничить вашу объектную модель типами, которые могут быть закодированы.Можете ли вы описать ваши данные более конкретно?В вашем примере кажется, что все записи имеют тип [String:String], который было бы тривиально преобразовать в JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...