人类可读的序列化替代BinaryFormatter



我有一个通过

序列化的对象
BinaryFormatter formatter = new BinaryFormatter();
StreamWriter writer = new StreamWriter("filename");
formatter.Serialize(writer.BaseStream, the_object);
writer.Close();

是否有一种方法来查看它在一个更容易理解的形式,例如,在json?由于

使用Json。净:

string serialized = JsonConvert.SerializeObject(the_object);

要反序列化它,您可以通过泛型指定对象的类型:

YourEntity deserializedObject = JsonConvert.DeserializeObject<YourEntity>(serialized);

或者你可以利用动态(需要c# 4.0或更新版本):

dynamic deserializedObject = JsonConvert.DeserializeObject(serialized);

我认为以特定格式"查看"序列化对象的唯一方法是首先将其序列化为该格式。除非您想编写大量代码将二进制对象转换为JSON,否则您将无法以JSON形式查看二进制序列化对象。但那完全是浪费时间。

如果数据已经以二进制形式序列化,那么将其反序列化为类对象,然后将其重新序列化为JSON或XML。然后您可以打开这些文件并了解内容。

最新更新