就这种提示:
当时测试妹纸拿给我看的,我说是后台问题,妹纸说安卓那边都是对的,肯定是我的问题。这让我很尴尬,于是就用Charles抓了下数据,把后台返回的json数据拿到json.cn上解析,很显然是解析不出的:
根据提示,我仔细看了下json数据,发现里面有个换行换得很诡异,于是我把那个换行删了,删了之后json就可以解析了
然后我恍然大悟:
用户输入地址的时候,最后输了个换行符,我前端没做处理直接传给了后台,后台也没做处理直接返给了前端。最后就出现这种尴尬的局面了。我给测试说了,她到数据库把那个地址的换行符删掉后就OK了。最后给后台小伙伴说了下,让他把地址里的回车全部去掉。
总结:
反思了一下之所以出现这种情况的原因:
1.首先我前端经验不足未做相应处理
2.后台实在太水。。。(是的,我忍不住抱怨一下,说好的坚强的后盾呢?)
应对方法
不管怎样,我们前端不能无动于衷。
于是,给NSString
添加了一个category:
/**
删除两端空格和所有换行
@return 处理后的string
*/
- (NSString *)stringByDeletingBothEndsSpaceAndNewLine{
// 删除两端空格
NSString *resultString = [self stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceCharacterSet]];
// 删除所有换行
resultString = [resultString stringByReplacingOccurrencesOfString:@"\n" withString:@""];
return resultString;
}
命名可以参照系统的:
stringByDeletingPathExtension
stringByDeletingLastPathComponent
学会了这招你就能轻松get命名之道了。
当然,具体处理方式得视具体情况而定。
或许不能输入表情、或许不能输入特殊符号等等。
最重要的是:一定要有对用户输入的字符串进行必要处理的意识。