ERRO DURANTE A SERIALIZAÇÃO OU DESSERIALIZAÇÃO
Pessoal estou tentando ler um arquivo json com mais de 1 milhão de linhas, criei uma classe
Criei um projeto teste, apenas com o console
using System;
using System.Collections.Generic;
using System.IO;
using System.Web.Script.Serialization;
static void LerArquivoJson(string arquivo)
{
JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
using (StreamReader r = new StreamReader(arquivo))
{
string json = r.ReadToEnd();
Essa linha é que da o problema
dynamic array = serializer.DeserializeObject(json);
Console.WriteLine("");
Console.WriteLine(serializer.Serialize(array));
Console.WriteLine("");
Console.ReadKey();
}
}
Esse é o erro completo
System.ArgumentException
HResult=0x80070057
Message=Erro durante a serialização ou desserialização usando JSON JavaScriptSerializer. O tamanho da cadeia de caracteres ultrapassa o valor definido na propriedade maxJsonLength.
Parameter name: input
Source=System.Web.Extensions
StackTrace:
em System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)
em System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject(String input)
em CSharp_Json.Program.LerArquivoJson(String arquivo) em C:\PROJETOS\C#\Sistema\CSharp_Json\CSharp_Json\Program.cs:linha 41
em CSharp_Json.Program.Main(String[] args) em C:\PROJETOS\C#\Sistema\CSharp_Json\CSharp_Json\Program.cs:linha 12
Queria saber onde posso subir a quantidade , estava tentando achar alguma informação na net e não achei, o que andei vendo foi em Java
Desde já agradeço a todos
Criei um projeto teste, apenas com o console
using System;
using System.Collections.Generic;
using System.IO;
using System.Web.Script.Serialization;
static void LerArquivoJson(string arquivo)
{
JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
using (StreamReader r = new StreamReader(arquivo))
{
string json = r.ReadToEnd();
Essa linha é que da o problema
dynamic array = serializer.DeserializeObject(json);
Console.WriteLine("");
Console.WriteLine(serializer.Serialize(array));
Console.WriteLine("");
Console.ReadKey();
}
}
Esse é o erro completo
System.ArgumentException
HResult=0x80070057
Message=Erro durante a serialização ou desserialização usando JSON JavaScriptSerializer. O tamanho da cadeia de caracteres ultrapassa o valor definido na propriedade maxJsonLength.
Parameter name: input
Source=System.Web.Extensions
StackTrace:
em System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)
em System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject(String input)
em CSharp_Json.Program.LerArquivoJson(String arquivo) em C:\PROJETOS\C#\Sistema\CSharp_Json\CSharp_Json\Program.cs:linha 41
em CSharp_Json.Program.Main(String[] args) em C:\PROJETOS\C#\Sistema\CSharp_Json\CSharp_Json\Program.cs:linha 12
Queria saber onde posso subir a quantidade , estava tentando achar alguma informação na net e não achei, o que andei vendo foi em Java
Desde já agradeço a todos
Antes de serializar, tente colocar isso:
serializer.MaxJsonLength = Int32.MaxValue;
Alterado em 15/02/2024 17:19:58
Kerplunk agradeço o retorno,
Não deu o erro anterior, más sim um erro de exceção sem tratamento e mais nada e na mesma linha
Não deu o erro anterior, más sim um erro de exceção sem tratamento e mais nada e na mesma linha
O arquivo pode não estar em um formato JSON correto ou o objeto destino não suporta.
Porque você simplesmente não cria as classes à partir do arquivo ao invés de um treco dinâmico que não é tipado?
Porque você simplesmente não cria as classes à partir do arquivo ao invés de um treco dinâmico que não é tipado?
Kerplank acabei fazendo isso mesmo, não sei pq o site não exportou o arquivo em Json, sendo que a opção de exportação era Json, deve ser um erro por parte deles e como o arquivo era enorme, não consegui ver toda a estrutura.
Depois consegui achar um software que abre arquivo grandes, e consegui ver da forma que os dados estavam dispostos e montei um esquema para ler o arquivo linha a linha, porque realmente não estava Json correto
Depois consegui achar um software que abre arquivo grandes, e consegui ver da forma que os dados estavam dispostos e montei um esquema para ler o arquivo linha a linha, porque realmente não estava Json correto
Tópico encerrado , respostas não são mais permitidas