[英]how to parse a decimal value from JSON response
我的json响应的数值类似于“20.0000”
我正在解析它
id jsonObject1 = [NSJSONSerialization JSONObjectWithData:responseData7 options:NSJSONReadingAllowFragments error:nil];
AmountArray = [jsonObject1 valueForKey:@"Amt"];
我的问题是,当我打印(检查)jsonObject1时,金额值只是'20'而不是'20 .0000'。 但是,网络服务的实际价值是'20 .0000'。 如何正确解析?
JSON格式(比较http://json.org )区分字符串和数字 。 例如,字符串用引号括起来
"Hello world"
"20.0000"
"20"
例如,数字不用引号括起来
20.0000
20
现在"20.0000"
和"20"
是完全不同的字符串,但是20.0000
和20
是相同的实数 。
JSON号码转换为NSNumber
(或NSDecimalNumber
)。 但是这个数字是如何用JSON编写的并不重要,这是相同的数字。 说这没有意义
网络服务的实际价值是'20 .0000'
因为来自Web服务的值是实数20
,无论该数字如何写入。
如果由于任何原因必须区分20
和20.0000
,则Web服务必须将值写为字符串 (用引号括起来)。
使用NSJSONReadingMutableLeaves
而不是NSJSONReadingAllowFragments
。 可以在http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html上找到相应的文档。
如果它对你有帮助,请告诉我。
尝试获取double值:
id jsonObject1 = [NSJSONSerialization JSONObjectWithData:responseData7 options:NSJSONReadingAllowFragments error:nil]; AmountArray = [[jsonObject1 valueForKey:@"Amt"] doubleValue];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.