Code Bye

字符串长度超过了为maxJsonLength属性设置的值

 


使用JSON序列化一个对象成字符串,然后储存入数据库。
在数据库中设置列的数据类型为nvarchar(MAX),可是为什么会出现字符串超长的异常呢?
nvarchar(MAX)难道不是意味着字符串可以无限长吗?


4分
用备注型,或者用image字段,保存字节流

15分
以后出错了不要慌慌张张的。
错误信息都不看。

人家说了超过了maxjsonlength的限制了,如果你需要那么大的json,就扩大限制。


2分
这不是入库时候发生的异常哦

3分
nvarchar(MAX)难道不是意味着字符串可以无限长吗
当然不是,只是设置了nvarchar允许的最大长度而已
比如最大长度是3000,那么nvarchar(MAX)等效于nvarchar(3000)罢了

3分
用的什么数据库?  nvarchar(max) 最多可以储存2G字节的数据。 确定  程序的其它地方没有异常?

12分
你可以用其他类型来存放
或者想简答,那么建立个子表来存放这个,写入的时候判断,如果超过最大长度,截断,分多次写入
读取的时候拼接
使用JSON序列化一个对象呢,字符串又要超长,那如此说来,还是使用二进制序列化,要好些吗?

12分
http://bbs.csdn.net/topics/390921892

12分
晕,这个是你json序列化类的问题,那个有最大长度限制,和数据库无关,楼上就winner2050和wf5360308发现问题所在了,其他人看都不看错误信息乱回答。

5分
引用 9 楼 qldsrx 的回复:

晕,这个是你json序列化类的问题,那个有最大长度限制,和数据库无关,楼上就winner2050和wf5360308发现问题所在了,其他人看都不看错误信息乱回答。

+1
序列化和反序列化时出错,并不是入库时出错

我已经在默认的MaxJsonLength值前面加了一个1了,都好几百万的值了,还是嫌短。
使用JSON序列化一个对象呢,字符串又要超长,那如此说来,还是使用二进制序列化,要好些吗? 
引用 11 楼 F35rtt 的回复:

我已经在默认的MaxJsonLength值前面加了一个1了,都好几百万的值了,还是嫌短。
使用JSON序列化一个对象呢,字符串又要超长,那如此说来,还是使用二进制序列化,要好些吗? 

.
这种情况下,是不是要改为序列化成二进制了呢?二进制没有长度限制吧


12分
这是JSON的问题。
与数据库无关。你要用超长的字符。那就改用text类型吧。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明字符串长度超过了为maxJsonLength属性设置的值