MessagePack icon indicating copy to clipboard operation
MessagePack copied to clipboard

URLs don't encode/decode properly

Open nicked opened this issue 3 years ago • 0 comments

A simple model like this fails to encode and then decode successfully:

struct Link: Codable {
    let url: URL
}

This is because like Date and Data types, URLs also need to be handled as a special case by coders.

Here's how they're handled in the Swift JSONEncoder: https://github.com/apple/swift-corelibs-foundation/blob/943fee90d095a1708da826e7641636a3cbe9642e/Sources/Foundation/JSONEncoder.swift#L445

If left to encode themselves, URLs create a base/relative URL part, whereas the JSONEncoder just outputs the absoluteString as a normal String field.

nicked avatar Feb 04 '22 13:02 nicked