[swift-users] I ve found a serious Bug in JSONEncoder (SR-6131) and would like to fix it.
Greg Parker
gparker at apple.com
Mon Dec 18 17:51:28 CST 2017
Jon is correct: JSON uses '.' as the decimal separator.
Benoit is also correct: the bug is that JSONEncoder is incorrectly writing ',' as the decimal separator when the locale is set to fr_FR.
Further discussion will be on the swift-corelibs-dev list.
> On Dec 18, 2017, at 10:08 AM, Jon Shier via swift-users <swift-users at swift.org> wrote:
>
> 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 <mailto: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 <mailto:swift-users at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-users
>
> _______________________________________________
> 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/4a4aaac1/attachment.html>
More information about the swift-users
mailing list