Json解析中遇到的问题(__NSCFNumber和__NSCFString)
·
今天遇见一个问题:json解析中原先预定是String的数据变成了number,结果在赋值调用中出现崩溃。
问题很简单,Java后台将一个纯数字的字符串 当成数字返回来了,倒置客户端解析错误。
解决办法:1,可以修改数据。(可以在纯数字的字符串后边加一个空格,即可识别成字符串)
2,修改后台,将他识别成字符串返回。(本人对Java不了解,只是建议。一下代码会将数字全部转化为字符串)
<bean id="simpleConverter" class="org.codehaus.jettison.mapped.SimpleConverter"/>
<bean id="jsonProvider" class="org.apache.cxf.jaxrs.provider.JSONProvider">
<property name="typeConverter" ref="simpleConverter"/>
</bean>
3,修改客户端,在使用的时候加类型判断。例如:
if ([obj isKindOfClass:[NSNumber class]]) {
//
}
或者:
if ([[obj className] isEqualToString:@"__NSCFString"] || [[obj className] isEqualToString:@"__NSCFNumber"]) {
//类型转换
}
更多推荐
所有评论(0)