<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote">On 11 November 2017 at 21:56, Eagle Offshore <span dir="ltr">&lt;<a href="mailto:eagleoffshore@me.com" target="_blank">eagleoffshore@me.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">I have to agree, would be better to allow one to provide a mapping dictionary or delegate.  Building the encodingKeys into the class itself is short sighted and a half measure.<div><br></div><div>Different types of codings will necessarily desire different key sets and even different names for what are logically the same keys.  This absolutely should NOT be baked into the class that implements Codable but rather maybe a delegate that is presented each key/value and given an opportunity to provide a substitute key and value.</div><div><br></div><div>Codable is a fairly useless one trick pony in its current incarnation.  It doesn&#39;t really solve any problem I have with respect to interacting with web services.</div><div><br></div></div></blockquote><div><br></div><div> </div></div>in defence of Codable, my experience so far told me:</div><div class="gmail_extra"><br></div><div class="gmail_extra">- it is very useful</div><div class="gmail_extra"><br></div><div class="gmail_extra">- easy to use especially when you can change those structures / keys, e.g. when you have an influence on the service side as well, or the service side is designed at the same time - when you start from clean state in other words.</div><div class="gmail_extra"><br></div><div class="gmail_extra">- even if you need to talk to an already established service - the key&#39;s translation it&#39;s doable now (could have been easier though)</div><div class="gmail_extra"><br></div><div class="gmail_extra">- it is very logical to hook the logic of the key translation in the Codable subclass itself (maybe in a different form to what it is now) rather than do it externally - the latter is a more &quot;manual&quot; and thus a more error prone approach where things can be easily screwed.</div><div class="gmail_extra"><br></div><div class="gmail_extra">- the ideal design (not current) would allow to do the translation the way you want (e.g. via the delegate). so shall be win-win.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Mike</div><div class="gmail_extra"><br></div></div>