[swift-users] I ve found a serious Bug in JSONEncoder (SR-6131) and would like to fix it.

Jon Shier jon at jonshier.com
Mon Dec 18 12:08:44 CST 2017


I’m pretty sure JSON isn’t localized, so this isn’t a bug. Using anything but a . as a decimal separator isn’t valid JSON. 


Jon

> On Dec 18, 2017, at 11:51 AM, Benoit Pereira da silva via swift-users <swift-users at swift.org> wrote:
> 
> Dear all
> 
> I've found a serious Bug in JSONEncoder SR-6131 <https://bugs.swift.org/browse/SR-6631> and would like to fix it.
> This bug cause JSON encoding issues on Double when using a local that does not use dot as decimal separator e.g « fr_FR » (we use a coma)
> 
> Demonstration of the issue : 
> 
> import Foundation
> 
> // Required to call setLocale
> import Darwin
> 
> // Let's set to french
> setlocale(LC_ALL,"fr_FR")
>  
> struct Shot:Codable{
>     let seconds:Double
> }
>  
> let shot = Shot(seconds: 1.1)
>  
> do{
>     let data = try JSONEncoder().encode(shot)
>     if let json =  String(data:data, encoding:.utf8){
>         // the result is : "{"seconds":1,1000000000000001}"
>         // The decimal separator should not be "," but "."
>         print(json)
>     }
> }catch{
>     print("\(error)")
> }
>  
> exit(EX_OK)
> 
> 
> 
> 
> I would like to propose my fix, test it and, but i’m not mastering the contribution mechanism.
> 
> Where should i start? 
> 
> I ve forked https://github.com/benoit-pereira-da-silva/swift-corelibs-foundation <https://github.com/benoit-pereira-da-silva/swift-corelibs-foundation>
> I have a very simple Unit test that demonstrates the issue.
> 
> How can i test my 
> 
> 
> Thanks
> 
> 
> 
> 
> 
> Benoit Pereira da Silva
> Ultra Mobile Developer & Movement Activist
> Développeur Ultra Mobile & Militant du mouvement
> https://pereira-da-silva.com <https://pereira-da-silva.com/>
> 
> <bannerp.jpg>
> 
> 
> 
> ✄ --------------------------------
> This e-mail is confidential. Distribution, copy, publication or use of this information for any purpose is prohibited without agreement of the sender.
> Ce message est confidentiel. Toute distribution, copie, publication ou usage des informations contenues dans ce message sont interdits sans agrément préalable de l'expéditeur.
> 
> 
> 
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20171218/7b3bdedd/attachment.html>


More information about the swift-users mailing list