2016-09-30 94 views
0

在我的c#應用程序中,我從外部設備收到以下消息。Laravel反序列化消息

Title: Color, Text: 6, Number: 0, Logic: false 

如何從此字符串消息中創建屬性?

通常我反序列化它,但在這種情況下,它不是json!

+0

反序列化是解析* something *和返回類的過程的通用名稱。沒有一個通用的反序列化器。除此之外還有二進制,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 result; 
} 

(當然,如果你想要反序列化它作爲一個對象,你將不得不將每個值轉換爲實際屬性類型)

+0

的解串器謝謝偉大的作品。 – Jamie