繁体   English   中英

如何从JSON响应中解析十进制值

[英]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.000020相同的实数

JSON号码转换为NSNumber (或NSDecimalNumber )。 但是这个数字是如何用JSON编写的并不重要,这是相同的数字。 说这没有意义

网络服务的实际价值是'20 .0000'

因为来自Web服务的值是实数20 ,无论该数字如何写入。

如果由于任何原因必须区分2020.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM