我无法从 JSON 解析正确的双精度

Posted

技术标签:

【中文标题】我无法从 JSON 解析正确的双精度【英文标题】:I can't parse correct double from JSON 【发布时间】:2015-09-18 10:49:58 【问题描述】:

NSJSONSerialization 有问题。我有一个带有纬度和经度值的 JSON 对象(37.321398,28.292399)。

NSData *l_responseData              = [NSURLConnection sendSynchronousRequest:request returningResponse:&responseCode error:&error];
NSMutableDictionary* l_serverResult = [NSJSONSerialization JSONObjectWithData: l_responseData options:NSJSONReadingMutableContainers error:&error];

NSData *l_responseData 具有正确的数字而不会丢失 JSON 中的精度,但是当我使用 NSJSONSerialization JSONObjectWithData: l_responseData....

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

你能确定l_responseData 包含正确的数据吗?据我所知,JSONObjectWithData:options:error: 在解析时不会丢失任何东西。

这里有一个示例代码来证明这一点:

NSMutableDictionary *test = [NSMutableDictionary dictionaryWithDictionary:@@"Lat": @37.321398, @"Long" : @28.292399];
NSData *data = [NSJSONSerialization dataWithJSONObject:test options:NSJSONWritingPrettyPrinted error:nil];

NSDictionary *test1 = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

NSLog(@"test1 = %@", test1); // This prints correct values.

因此,我建议您检查您从服务器获得的响应。

【讨论】:

以上是关于我无法从 JSON 解析正确的双精度的主要内容,如果未能解决你的问题,请参考以下文章

如何正确解析 SWIFT 中的 JSON 对象

如何避免以科学记数法表示的双精度数和数字的字符串到数字转换?

从 Web API 解析 Json

如何在ios中将字典的双引号数组解析为json?

C++,如何从字符串中获取正确的双精度值?

Rest Template 无法正确解析 json rest api 响应