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"]) {
       //类型转换
      }


 

你可能感兴趣的:(json)