4
dataElementsList : TypesAndData.DataElement list 

은 50,000 개의 레코드 목록입니다. 실제로는 더 많지만 작게 시작합니다.F # DataContractJsonSerializer StackOverflowException

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

을하고 악명있는 StackOverflowException을 얻고있다 : 나는 JSON 파일로 직렬화하는 것을 시도하고있다. 정확하기 :

유형 'System.StackOverflowException' 의 처리되지 않은 예외가

조언 FSharp.Core.dll

에서 발생

?

답변

5

이렇게하면 F # 목록을 직렬화하려고하면 안됩니다. List.toArray으로 배열로 변환하십시오.

(내가 DataContract 시리얼 당신이 원하는 것을하지 JSON/XML,의 50000 트리 깊이를 의미하는 '첫 번째'/ '휴식'데이터 구조 중첩 등의 목록을 볼 것으로 기대합니다.)

+0

이 트릭 I나요 낄낄 거림에 나는리스트의 10 요소를 패러디했다.리스트의 "내부 구조"를 그대로 유지하고있는 것처럼 보였다. 생각해 보면 의미가있다. 고맙습니다 – akaphenom