我找到了两个不同的数据序列化示例。一个是使用流而另一个不是?
stream1.Position = 0;
StreamReader sr = new StreamReader(stream1);
Console.Write("JSON form of Person object: ");
Console.WriteLine(sr.ReadToEnd());
public static string ToJson(this object obj, int recursionDepth = 100)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.RecursionLimit = recursionDepth;
return serializer.Serialize(obj);
}
public static List<T> ToListObject<T>(this string obj, int recursionDepth = 100)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.RecursionLimit = recursionDepth;
List<T> returnList = serializer.Deserialize<List<T>>(obj);
return returnList;
}
为什么要使用Stream作为额外步骤?
答案 0 :(得分:1)
如果您实际上正在与支持的文件或网络套接字进行通信,并且数据很大(即您不想加载巨大的数据),则使用Stream或读取器/写入器API可能很方便。记忆中的{1}}。
基于string
的API在处理少量数据时更为方便,这在大多数AJAX / HTTP方案中都很常见。请注意,大多数序列化程序没有直接公开string
作为输入/输出的API,但这是一种常见的JSON场景,它对您来说很容易。
一个基本上是另一个的便利包装。哪种方式是实现细节,尽管我希望主要的内部代码是基于流或基于读取器/写入器的(允许大型文档没有开销)。
使用最方便的目的。