1

我发现了两个如何序列化数据的不同示例。一个使用流,另一个不使用?

stream1.Position = 0;
StreamReader sr = new StreamReader(stream1);
Console.Write("JSON form of Person object: ");
Console.WriteLine(sr.ReadToEnd());

来自 MSDN

   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; 
    } 

来自 StackOverflow

为什么要使用 Stream 作为附加步骤?

4

1 回答 1

1

如果您实际上正在与诸如文件或网络套接字之类的支持进行通信,并且数据很大(即您不想加载大量string内存),则使用 Stream 或读取器/写入器 API 可能会很方便。

string在处理少量数据时,基于 -的 API 更方便,这在大多数 AJAX/HTTP 场景中都很常见。请注意,大多数序列化程序没有直接公开string为输入/输出的 API,但这是 JSON 的常见场景,因此对您来说很容易。

一个基本上是另一个的便利包装。哪种方式是实现细节,尽管我希望主要的内部代码是基于流或读取器/写入器的(以允许没有开销的大型文档)。

使用对您的目的最方便的。

于 2012-06-05T19:30:04.353 回答