Comments (16)
你的模型属性是int类型么?那肯定会丢失的。你试试把模型属性定义为double类型或者NSNumber类型
from mjextension.
杰哥,后台给的数据用NSJSONSerialization转成字典后,字典里面的key = latitude、 value值类型是double(比如@"latitude":(double)39.828282),我的模型里面latitude属性是nsstring.转完之后就变成一个@"39"了,是我没看清楚后台来的数据类型。%>_<%
from mjextension.
改为double或者NSNumber就好了吧?
from mjextension.
你下载最新框架代码试试,你用NSString应该也没问题了,我增加了个小功能
from mjextension.
我没改,让后台改了。我下午一点多下的最新的。😊
from mjextension.
几分钟前我改了代码。现在不管服务器是什么类型,你写NSString都OK了,哈哈
from mjextension.
恩,我去。拉下来研究下。顶起来!!!!
from mjextension.
杰哥,精度丢失问题(NSJSONSerialization)依然存在哦,服务端返回的是99.99,我用NSString 接收,结果是99.98999999999999
from mjextension.
我也出现了
服务器返回:"deposit": 78.400,
结果转成模型就变成 deposit = "78.40000000000001";
from mjextension.
杰哥,精度丢失问题(NSJSONSerialization)依然存在哦,服务端返回的是99.99,我用NSString 接收,结果是99.98999999999999 在value = [value description] 转的时候就丢失了
from mjextension.
服务端返回小数,用NSString接收,结果出现一堆99999,value = [value description] 转的时候就丢失精度,这个问题现在有解决方案吗?
from mjextension.
@shijinliang 用NSString 接收,不应该就是原始的的值吗?怎么会丢失呢,贴段你的代码看看呢?
from mjextension.
@kinarob
定义的时候是字符串@Property (nonatomic,copy) NSString *price;
但是服务端返回的是数值类型,比如9.2,不是"9.2",这个时候模型转换就会给price赋值为9.1999999999,跟踪了代码发现是mj转换的时候丢失了精度,value是NSNumber,但是用NSString接收,value = [value description]; 这句代码转换引起了精度丢失,
if (propertyClass == [NSString class]) {
if ([value isKindOfClass:[NSNumber class]]) {
// NSNumber -> NSString
value = [value description];
} else if ([value isKindOfClass:[NSURL class]]) {
// NSURL -> NSString
value = [value absoluteString];
}
}
from mjextension.
@wanzhu159 你用NSNumber 或者 NSDecimal 转试试呢?
from mjextension.
@kinarob
定义的时候是字符串@Property (nonatomic,copy) NSString *price;
但是服务端返回的是数值类型,比如9.2,不是"9.2",这个时候模型转换就会给price赋值为9.1999999999,跟踪了代码发现是mj转换的时候丢失了精度,value是NSNumber,但是用NSString接收,value = [value description]; 这句代码转换引起了精度丢失,if (propertyClass == [NSString class]) { if ([value isKindOfClass:[NSNumber class]]) { // NSNumber -> NSString value = [value description]; } else if ([value isKindOfClass:[NSURL class]]) { // NSURL -> NSString value = [value absoluteString]; } }
最后怎么解决的?让后台把数值类型变成字符串吗?
from mjextension.
Duplicate of #572
from mjextension.
Related Issues (20)
- Object -> JSON 时, 没有校验 JSON 是否有效, 做出详细处理
- CoreData 设置 `inverse` 后, `to JSON` 会导致无限循环
- 字典 转 JSONString Crash HOT 6
- +[NSObject(Property) mj_enumerateProperties:] 崩溃 HOT 6
- swift 与 oc 混合,数据是嵌套数组 使用 mj_objectClassInArray 该方法无效,这个怎么解决呢? HOT 2
- 友盟上偶现的一个崩溃信息 ,[MJProperty valueForObject:] + [MJProperty.m : 78],一直排查不到 HOT 14
- 模型转字典,出现问题了 HOT 1
- -[MJProperty setValue:forObject:] + [MJProperty.m : 98] HOT 2
- `
- 4.0.0 版本模型数组转数组时,模型数组有值,使用- (id)mj_JSONObjectWithKeys:(NSArray *)keys 后转化的值为nil HOT 3
- 设置属性缺省值的功能? HOT 1
- iOS 17 上面海量崩溃 HOT 2
- 如果服务器返回double,如0.94,用字符串接收,会变成0.939999999,精度丢失,麻烦看一下 HOT 1
- 不支持二维数组json对象转换为模型
- 父类、子类中都存在嵌套模型的数组,该如何处理 HOT 1
- iOS 17.0.3上,模型中存在UIImange属性且有值时,模型转字典崩溃。 HOT 2
- 1
- 在bugly上崩溃次数较多的问题,没有排查到什么问题
- 关于ios.deployment_target最低版本 HOT 2
- MJ_LOCK 造成线程优先级倒置 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mjextension.