使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength 属性设置的值

问题:使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength 属性设置的值

分析:

意味着你尝试处理的 JSON 字符串超过了 JavaScriptSerializer 默认的最大长度限制。默认限制,JavaScriptSerializer 类的 MaxJsonLength 属性默认设置为 2097152 字节(即 2MB)。这意味着如果你尝试序列化或反序列化超过这个大小的 JSON 数据,就会抛出异常。

解决方案

1、增加 MaxJsonLength 的值:

csharp 复制代码
using System.Web.Script.Serialization;

var jsonResult="";//你要返回的参数
var seriializer = new JavaScriptSerializer();
seriializer.MaxJsonLength = Int32.MaxValue;// 或者设置为一个合理的更高值
var result = new ContentResult
{
    Content = seriializer.Serialize(jsonResult),
    ContentType = "application/json"
};
   return result;

2、使用Newtonsoft.Json序列化库

csharp 复制代码
using Newtonsoft.Json;

var jsonString = JsonConvert.SerializeObject(yourObject);
// 或者
var Obj = JsonConvert.DeserializeObject<T>(jsonString);

或者自定义

csharp 复制代码
JsonSerializerSettings settings = new JsonSerializerSettings
{
    MaxDepth = 100, // 可以根据需要设置
    MaxJsonLength = int.MaxValue // 或者设置为一个合理的更高值
};

string jsonString = JsonConvert.SerializeObject(yourObject, settings);

3、对返回的参数进行分页返回

csharp 复制代码
int rows = Convert.ToInt32(Request["rows"] ?? "20");//条数
int page = Convert.ToInt32(Request["page"] ?? "1");//页码
 int numF = (page - 1) * rows ;
 int numT = page * rows;

 var data = new PreContainerGoodsBll().GetShipmentEntrustmentList(SED_STARTDATE, SED_ENDDATE, SED_CST_ID, SED_STATUS, SED_NUM, SED_PDI_NAME, SED_EPT_ID, SED_TYPE1, SED_TYPE2,  SED_TYPE,  PER_TRK_TRKNO);//要返回的参数
 var pagedData = data
 .Skip(numF) // 跳过前面的(pageNumber - 1) * pageSize个元素
 .Take(numT) // 取接下来的pageSize个元素
 .ToList(); // 将结果转换为列表
 var jsonResult = new { total = data.Count<SHIPMENT_ENTRUSTMENTModel>(), rows = pagedData };
 return Json(jsonResult, JsonRequestBehavior.AllowGet);
相关推荐
最笨的羊羊10 小时前
Flink CDC系列之:Kafka 变更日志 JSON 格式工厂类 ChangeLogJsonFormatFactory
json·flink cdc系列·changelog·kafka 变更日志·json 格式工厂类·formatfactory
于是我说14 小时前
Python Requests Session Cookies 与 JSON 文件的存取
python·json·dubbo
YAY_tyy17 小时前
详解 3D Tiles 核心入口文件:tileset.json 结构与实战解析
3d·json·3dtiles
2***d88519 小时前
SpringCloud系列教程:微服务的未来 (五)枚举处理器、JSON处理器、分页插件实现
spring cloud·微服务·json
k***921621 小时前
深入了解 MySQL 中的 JSON_CONTAINS
数据库·mysql·json
map_3d_vis21 小时前
JSAPIThree 数据源系统学习笔记:让数据在地图上可视化
json·学习笔记·csv·geojson·datasource·数据源·初学者·mapvthree·jsapithree
霸道流氓气质1 天前
Jquery中使用ajax传json参数并从SpringBoot后台Controller返回消息
ajax·json·jquery
阿巴~阿巴~1 天前
JsonCpp:C++ JSON处理利器
linux·网络·c++·json·tcp·序列化和反序列化
曹牧1 天前
Java: Json的键值双引号
java·chrome·json
最笨的羊羊1 天前
Flink CDC系列之:Kafka JSON 序列化器JsonSerializationSchema
json·schema·flink cdc·serialization·序列化器·系列·kafkajson