MVC 4 ASP.NET Web API应用程序:
我有一个形式的JSON数组:
var json = "{
'mapset':
[
{
'id': '1',
'key': 'key1',
'value': 'value1',
'timestamp': '2014-02-12T08:50:54.594Z'
},
{
'id': '2',
'key': 'key2',
'value': 'value2',
'timestamp': '2014-02-12T08:50:54.594Z'
},
]
}";
dynamic data = System.Web.Helpers.JSON.decode(json);
对于每个大约1K字节的10K元素的数组, JSON.Decode()
就像一个魅力 .
对于100K元素失败并出现错误:
System.ArgumentException:使用JSON JavaScriptSerializer进行序列化或反序列化时出错 . 字符串的长度超过maxJsonLength属性上设置的值 . 参数名称:在System.Web.Helpers处的System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer序列化程序,字符串输入,类型类型,Int32 depthLimit)处输入 . Json.Decode(字符串值)
如何设置更高的限制?
我知道关于这个主题的另一篇文章:
Can I set an unlimited length for maxJsonLength in web.config?
但是那里提供的答案并没有解决我的具体问题 .
我在MVC4应用程序中直接使用 JSON.Decode()
,因此 web.config
设置的修改将不适用 . 并且 JSON.Decode()
将JSON字符串反序列化为.NET JSON对象(而不是将.NET JSON对象序列化为JSON字符串) .
1 回答
System.Web.Script.Serialization.JavaScriptSerializer
为我做了诀窍 .我认为这很难看,但是使用JavaScriptSerializer,我可以将maxJsonLength设置为一个很大的值: