Десериализация сообщения Laravel

#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<
}
  

(конечно, если вы хотите десериализовать его как объект, вам придется преобразовать каждое значение в фактический тип свойства)