4
dataElementsList : TypesAndData.DataElement list

是一个包含 50,000 条记录的列表(实际上更多,但让我们从小处开始)。我正在尝试序列化为 JSON 文件:

let ser = Json.DataContractJsonSerializer(typeof<TypesAndData.DataElement list>) 
use ofs = File.OpenWrite(fileName)
let result = ser.WriteObject(ofs, dataElementsList)

并且得到了臭名昭著的 StackOverflowException。准确地说:

FSharp.Core.dll 中出现“System.StackOverflowException”类型的未处理异常

有什么建议吗?

4

1 回答 1

5

您不应尝试以这种方式序列化 F# 列表。将其转换为带有List.toArray.

(我希望 DataContract 序列化程序将列表视为嵌套的 'first'/'rest' 数据结构,这意味着 Json/Xml 的 50000 树深度,这不是您想要的。)

于 2010-04-28T17:50:52.863 回答