Laravel反序列化消息
问题描述:
在我的c#应用程序中,我从外部设备收到以下消息。Laravel反序列化消息
Title: Color, Text: 6, Number: 0, Logic: false
如何从此字符串消息中创建属性?
通常我反序列化它,但在这种情况下,它不是json!
答
嗯,你总是可以回落到美好的旧手工解析......假设属性值永远不会包含字符,
,你可以做这样的事情:
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
反序列化是解析* something *和返回类的过程的通用名称。没有一个通用的反序列化器。除此之外还有二进制,xml和json反序列化器。如果你想反序列化一个自定义格式,你必须自己创建反序列化器。 *这是什么格式?也许有人已经创建了这个 –