Member 12688026 Ответов: 1

Запрос json был слишком велик, чтобы быть десериализованным C#


Я хотел десериализовать большой файл json без использования этого :

<appSettings>
  <add key="aspnet:MaxJsonDeserializerMembers" value="150000" />
</appSettings>



в web.config, потому что это повлияет на весь проект..

Я просто хотел положить его в действие, чтобы быть в безопасности..

Что я уже пробовал:

Вот мой код:


public IEnumerable<PricingVehicleEquipmentsOptionModelDto> GetFactoryOptions(long vehicleId)
        {
            var optionalequips = new List<PricingVehicleEquipmentsOptionModelDto>();
            var optionEquipmentJson = _dbContext.IVehicleOptions.FirstOrDefault(o => o.Name == "Optional_Equipment" & o.IVehicleId == vehicleId);
            var vehicle = _dbContext.IVehicles.FirstOrDefault(o => o.Id == vehicleId);

            var optionEquipments = optionEquipmentJson != null ? JsonConvert.DeserializeObject<List<PricingVehicleEquipmentsOptionModelDto>>(optionEquipmentJson.OptionCodes) : null;

            var style = optionEquipments.Select(o => new PricingVehicleEquipmentsOptionModelDto
            {
                TypeId = o.TypeId,
                TypeName = o.TypeName,
                Description = o.Description,
                oemCode = o.oemCode != null ? o.oemCode : o.chromeCode,
                IsApplied = o.IsApplied,
                StyleIds = o.StyleIds
            });

            foreach(var s in style)
            {                
                var optionStyle = s.StyleIds.Any(d => d.ToString() == vehicle.S_StyleId);

                if(optionStyle)
                {
                    optionalequips.Add(s);
                }
            };
       
            return optionalequips;
        }

Richard MacCutchan

Сообщение об ошибке достаточно ясно дает понять, что вы не можете этого сделать.

1 Ответов

Рейтинг:
10

Graeme_Grant

Эта ссылка покажет вам, как работать с большими файлами JSON: c# - синтаксический анализ большого json-файла в .NET - переполнение стека[^]