3
스트림을 통해 거대한 JSON (1.4GB)을 deserialize하는 중입니다. 파싱하기 전에 전체 내용을 메모리에 미리로드하고 싶지 않기 때문입니다. 괜찮 으면 좋겠지 만 ~ 80 초가 걸리므로 진행 상황을 표시하고 싶습니다.JSON 역 직렬화 진행 중
public JObject DeserializeViaStream(string filename)
{
object obj;
var serializer = new JsonSerializer();
using (var sr = new StreamReader(new FileStream(filename, FileMode.Open)))
{
using (var jsonTextReader = new JsonTextReader(sr))
{
obj = serializer.Deserialize(jsonTextReader);
}
}
return (JObject) obj;
}
난 아직 시도했지만하지 않은 단 하나의 생각 : 나는 바이트를 추적 내 자신의 스트림 리더 읽기 및 파일 길이가 비교되고 구현할 수있다.
내장 옵션이나 쉬운 방법이 있습니까?
해결책을 찾았습니까? – user2441511
@ user2441511 : 내 대답은 아래를 참조하십시오. ProgressStream이 작동했습니다. –