【发布时间】:2013-04-16 18:08:24
【问题描述】:
我被赋予了反序列化一些数据的任务。数据已全部转换为以下格式的字符串:
InternalNameA8ValueDisplay NameA¬InternalNameB8ValueDisplay NameB¬ 等等等等
(即,它有一个内部名称,'8',值,显示名称,后跟'¬'**)。例如,您将拥有FirstName8JoeFirst Name¬
我无法控制这些数据是如何序列化的,它是遗留的东西。
我曾想过对字符串进行一系列拆分,或者将其拆分为一个 char 数组并以这种方式拆分文本。但这似乎很可怕。这种方式有太多可能出错的地方(例如,如果电话号码的值(例如)可能以“8”开头。
我想知道人们对此的处理方式是什么?有什么更聪明的方法可以分解数据
注意: '¬' 实际上不是字符,它看起来更像是一个指向左侧的箭头。但我现在不在我的机器旁。呵呵!
谢谢。
【问题讨论】:
-
数据模式很难看,所以解析解决方案不会很漂亮。字段之间的区别是什么?
-
我认为您正在将二进制数据作为文本读取,因此您的字符串非常丑陋(而且几乎无法解析)。
-
我认为你在这里的“最佳实践”为时已晚。您继承了一种无法更改的奇怪格式,因此您处理它的方法也可能很奇怪。我的建议是找到一种方法来解析正确的数据,然后让该代码看起来尽可能好。
-
是的,太可怕了。看起来它必须是类似丑陋的东西才能反序列化。谢谢大家。
-
谢谢大家。但如前所述,我对这篇文章的内容很感兴趣。 @I4V 如果您说我们正在将二进制数据作为文本读取,您是否知道将其作为原始数据取回并找到另一种提取数据的方法?
标签: c# .net c#-4.0 serialization deserialization