CGSize is encoded to an array by default. I would like to encode it to [String: Float] (i.e. ["width": 10, "height": 20]). Is there a way to override the default encoding/decoding behavior? Of course, as a workaround, I can define my own Dimension type and use that instead. I am just curious to know.
Swift - Override default encoding/decoding
641 Views Asked by Jack Guo At
1
There are 1 best solutions below
Related Questions in SWIFT
- Navigate after logged in with webservice
- URLSession requesting JSON array from server not working
- When using onDrag in SwiftUI on Mac how can I detect when the dragged object has been released anywhere?
- Protect OpenAI key using Firebase function
- How to correct error: "Cannot convert value of type 'MyType.Type' to expected argument type 'Binding<MyType>'"?
- How to share metadata of an audio url file to a WhatsApp conversation with friends
- Using @Bindable with a Observable type in SwiftUI
- How to make a scroll view of 9 images in a forEach loop open on image 6 if image 6 is clicked on from a grid?
- Using MTLPixelFormat.rgba16Float results in random round-off errors
- Search and highlight text of current text in PDFKit Swift
- How is passing a function as a parameter related to escaping autoclosure?
- Actionable notification api call not working in background
- Custom layout occupies all horizontal space
- Is it possible to fix slow CKAsset loading on Cloudkit?
- Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value - MapView.isMyLocationEnabled
Related Questions in JSONENCODER
- How to alter python's json encoder to convert NaN to None
- json_encode faster than Avro encoder in PHP (benchmark)
- In Swift, use a global CodingKeys (enum or struct) keeping my objects as simple as possible
- How can I apply a global .dateDecodingStrategy for all JSONEncoder and JSONDecoder?
- App crashes when trying to encode custom objects that conform to codable protocol and I can't figure out why, any thoughts?
- Unable to get the key value while json parsing in swift
- List elements should be separated by comma and space in json.dumps
- how to open json file using python
- Limit precision on JSONEncoder's Double output
- encoding a neural network in a json file
- python package for traversing data structures
- How to make json keys as a special order in Swift JSONEncoder?
- Error with JSONEncoder when start a Python Quart application
- How to prevent negative stock value after using after insert trigger
- "Cannot convert value of type <Custom Scalar> to expected dictionary value type 'JSONEncodable?'" for Apollo iOS
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
There is no supported way to outright override the encoding format for a given type you don't own; there are hacks that you can apply to override some types within your own module, but they're fragile and not worth employing.
If you use a 3rd-party encoder/decoder combo that isn't
Foundation.JSONEncoder/Foundation.JSONDecoder, it may offer an override facility similar to encoding/decoding strategies supported by Foundation, but that is dependent on the tools you're using.The "official" way to do this would be to either wrap
CGSizein a type you do own (as you suggest) and implementinit(from:)/encode(to:)there, or overrideinit(from:)/encode(to:)for all of the types that useCGSize(but this can get pretty tedious).