ExtJS加载不到JSON数据的问题(转义字符)

如题。最近遇到一个很奇葩的生产问题,ExtJS获取后台送回来的数据失败,后台的交易已经走完,也有JSON数据,但是前台的Store中数据为空。同样的代码,开发环境可以,UAT和生产点击下拉框之后没有数据送回来。


前台的Store:

Ext.define('Ext.store.Common.getBankFsStore',{
		extend: 'Ext.data.store',
		fields: ['fsName','fsId'],
		autoLoad: true;
		proxy: {
			type: 'ajax',
			url: 'common_getBankFs.action',
			reader: 'json',
			actionMethods: {
				read: 'POST'
			},
		},
		sorters: [{
			property: 'fsId',
			direction: 'ASC'
		]}
	});


解决方法:1.网上查找解决方案,查看是否是ID跟自定义的id不匹配,查看不是这个问题,我的后端定义是这样的。

String json = JsonTools.getJsonByMap(resultMap,"fsName","fsId");
	responseWriter(json);

2.仔细比对了本地开发环境和测试环境的代码,发现均一致,没有不同。。。。遇到难点了,无从下手,既不报错也没有错误日志。因为后台交易走完了

但是前端没有拿到JSON,所以笔者去打了日志,把UAT环境下的后台JSON拿了出来,然后直接responseWriter写到前台。

神奇的是这次竟然成功了,我更加疑惑了,这是什么鬼。。。。字符串对应的结果可以,字符串变量就不行????


3.最终解决方案:  笔者观察了打印的日志,发现因为长度问题JSON自动分行了,我怀疑是我的JSOn数据过大导致自动分行,产生了

回车符转义字符,所以我的想法是去掉字符串中的所有空格,换行,

String json = JsonTools.getJsonByMap(resultMap,"fsName","fsId").replace("\r\n","\\r\\n");
	responseWriter(json);
神奇的事情发生了,竟然成功了,成功了,功了,了。。。。。。。。一个由于转义字符引起的问题,用了差不多一两个礼拜才想到这样解决,还好解决了。恩。。。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值