#c# #laravel
#c# #laravel
Вопрос:
В моем приложении на c # я получаю следующее сообщение от внешнего устройства.
Title: Color, Text: 6, Number: 0, Logic: false
Как я могу создать свойства из этого строкового сообщения?
Обычно я десериализую его, но в данном случае это не json!
Комментарии:
1. Десериализация — это общее название процесса синтаксического анализа чего- либо и возврата классов. Не существует единого универсального десериализатора. Среди прочих есть двоичные, xml и json десериализаторы. Если вы хотите десериализовать пользовательский формат, вам придется создать десериализатор самостоятельно. Что это за формат? Возможно, кто-то уже создал десериализатор для этого
Ответ №1:
Ну, вы всегда можете вернуться к старому доброму ручному синтаксическому анализу… Предполагая, что значения свойств никогда не будут содержать символ ,
, вы можете сделать что-то вроде этого:
static IDictionary<string, string> Parse(string input)
{
var result = new Dictionary<string, string>();
var pairs = input.Split(',');
foreach (var pair in pairs)
{
var parts = pair.Split(new[] { ':' }, 2);
string name = parts[0];
string value = parts[1];
result.Add(name, value);
}
return resu<
}
(конечно, если вы хотите десериализовать его как объект, вам придется преобразовать каждое значение в фактический тип свойства)