在做项目的时候,遇到这样一个问题:
系统采用Mysql做数据库,数据内容直接使用用户的Excel导入。
然后采用Jqery通过后台的ashx文件提取Json数据,但是问题出现,出现了获取数据正常,文字显示的内容也正常,就是Json的格式不对(经过跟踪发现进行转义时出现了错误),到底是什么原因导致的呢?
百思不得其解,我尝试了一下用实际字符串代替从数据库中提取
String.Format("""id"":""{0}"",""text"":""{1}""", Rs("编号"), Rs("名称"))
改成:
String.Format("""id"":""{0}"",""text"":""{1}""", “12345”,“测试测试”)
结果竟然顺利通过测试,前台获取的Json一切正常。由此可知问题出在数据库字段的内容上。
于是我使用工具将数据库的中的记录导出为sql文件,结果发现几乎每一个字段值中都包含了特殊符号,所以才出现看不到去不合法的问题
INSERT INTO 单位 VALUES ('3', '3004', '白沙中学\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0', '查看', '')
INSERT INTO 单位 VALUES ('4', '3330', '半程中学\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0', '查看', '');
由此可知,在数据转换时一定要注意特殊符号的清理
在进行程序调试时,一个思路不行,快速地换个思路往往可以解决问题。