[swift-corelibs-dev] [swift-users] I ve found a serious Bug in JSONEncoder (SR-6131) and would like to fix it.
Lily Vulcano
millenomi at apple.com
Tue Dec 19 12:45:37 CST 2017
> On Dec 19, 2017, at 10:27 AM, Jon Shier via swift-corelibs-dev <swift-corelibs-dev 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.
JSONEncoder seems to be producing that content, so this does look like a Swift library issue.
Benoit: if you have a patch that fixes the issue, feel free to submit it as a GitHub pull request (*) against master and we’ll discuss it (and kick off testing) from there. I also opened <https://bugs.swift.org/browse/SR-6642> so that it isn’t forgotten. ✾
(*) https://help.github.com/articles/creating-a-pull-request/
>
>
> Jon
>
>> On Dec 18, 2017, at 1:04 PM, Jordan Rose via swift-users <swift-users at swift.org <mailto:swift-users at swift.org>> wrote:
>>
>> (moving to more relevant list)
>>
>>> On Dec 18, 2017, at 08:51, 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 <https://lists.swift.org/mailman/listinfo/swift-users>
>>
>> _______________________________________________
>> swift-users mailing list
>> swift-users at swift.org <mailto:swift-users at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-users <https://lists.swift.org/mailman/listinfo/swift-users>
> _______________________________________________
> swift-corelibs-dev mailing list
> swift-corelibs-dev at swift.org <mailto:swift-corelibs-dev at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-corelibs-dev <https://lists.swift.org/mailman/listinfo/swift-corelibs-dev>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-corelibs-dev/attachments/20171219/740d464a/attachment.html>
More information about the swift-corelibs-dev
mailing list