Web API JSON 属性长度限制?

Posted

技术标签:

【中文标题】Web API JSON 属性长度限制?【英文标题】:Web API JSON Property Length Limit? 【发布时间】:2014-04-25 10:08:53 【问题描述】:

我将 JSON 从 Objective-C 发布到 C# Web API 服务。 Web API 控制器上的 POST 方法自动将 post 表单数据反序列化为 .Net 中相应的类型化对象。

我遇到的问题是一个属性,一个简单的字符串属性,只有在发布的字符串足够小时才会接收一个值。我为该字段发布的信息是图像的 Base64 编码字符串表示。如果我使用的图像足够小,则该属性会完美通过。如果编码后的图像尺寸稍大一些,比如 80k,那么它会被反序列化为一个空字符串。

有人可以提供一些有关如何控制 Web API / MVC 中 JSON 反序列化所涉及的最大长度/大小的信息吗?

【问题讨论】:

好的,所以在设置远程天蓝色调试后,我确定问题不在于 json 数据的反序列化。问题是我通过具有映射到 NVARCHAR(MAX) 的属性的实体框架类型将信息保存到数据库。保存时,没有错误,但没有存储该值。当我尝试在 SQL Management Studio 中通过 SQL 语句存储值时,会出现一个错误,指出 Base64 值将被截断。我可以成功地将信息存储为 VarBinary 列。我认为 NVARCHAR(Max) 的存储限制是 2GB? 【参考方案1】:

我猜你正在寻找这个。在 web.config 中添加这个

<jsonSerialization maxJsonLength="maximumlengthhere" />

【讨论】:

我遇到了这个属性并忽略了它,因为它似乎与序列化而不是反序列化有关。我会给它一个狂欢,让你知道它是怎么回事。【参考方案2】:

请参考以下链接:希望对您有所帮助

http://www.drdobbs.com/windows/parsing-big-records-with-jsonnet/240165316 http://james.newtonking.com/json/help/html/Performance.htm

【讨论】:

以上是关于Web API JSON 属性长度限制?的主要内容,如果未能解决你的问题,请参考以下文章

在 Web API 调用上将字符串 JSON 属性转换为对象

在 MVC Web Api 4 Beta 中从 Json 中删除 Null 属性

如何使用 MongoDB 将动态 JSON 属性发布到 C# ASP.Net Core Web API?

Asp.net Web Api 2 - 哪些 Json 属性已传递给我的控制器?

MVC中JSON字符长度超出限制

ASP.NET Web API:JSON 序列化循环引用