中安佑一(69)34この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。はじめにモバイルアプリサービス部の中安です。最近、Alexaのことばかり書きすぎて疎かになっているswiftの記事を書きます。搭載されたデータ構造化に便利なプロトコルです。してまとめておりました。それにしても非常に強力な機能ですね。問題がそんな自分の拙文なブログ記事を見てくれたという知人が嘆いておりました。いうことかというと、例えば下記はとある学校の生徒名簿のJSONデータとします。}]「生徒の名前」と「学年」と「教室の番号」が書かれたデータです。いう構造体を定義するとします。準拠させておくことで、JSONから下記のように簡単にデコードができます。いうキャメル記法のプロパティ名キーを探しに行くため「見つかりませんよ」というエラーになるわけです。要求するイニシャライザを実装する方法になるかと思います。JSONキーを定義しておくことで、キーの記法の揺れを吸収できるようになります。知人の話では「これが長くて煩わしい」という話でした。種類も増やさないといけないし、イニシャライザの内容も増やさなくてはならない。エンコードの処理がもし増えたら、さらに・・・という感じです。キーまでわざわざ対応してやらなくてはいけないところもイヤな感じです。WebAPI等で返されるJSONを扱うとき、大概はそのJSONキーはスネーク記法であることが多いのではないかと思います。その対応のために沢山のコードを書くのは避けたいところです。あたりを削っていく方向にしたいところです。いうわけで、その策をちょっと考えてみました。策1「いっそ、プロパティの名前をスネーク記法にしてしまおう!」という強引なやり方です。Int}これで実際にJSONのキーとプロパティ名が合致するので、ちゃんと動くことにはなります。命名規則としてプロパティ名はキャメル記法なわけですからすごく違和感があります。策2「JSONのキーはスネーク記法、構造体のプロパティ名はキャメル記法」という体裁を崩さずに、かつ冗長化しない方法として下のような方法を考えました。してプロパティを定義しておいてもデコーダはちゃんとキーを見つけて値を入れてくれます。形でキャメル記法の計算プロパティを置いておいて、スネーク記法のプロパティ値をただ返すようにします。使用できなくなり、おおよそやりたかったことに合致します。ひとつのキーに対して二重で定義するような格好になってしまいますが、シンプルにやるならこの方法なのではないかなぁと思います。関する話を目にしました。(Swift4.1でCodableはkeyDecodingStrategyによって改善される)によると、デコーダに簡単な設定をしてやることで、取り込み先のデータがスネーク記法であってもデコード時に取り込んでくれるようになるようです。(正式版には変更が加わる可能性があるので、ご注意ください)もう少し待てばいいことありそうです。最後に今日書いたことは、あくまで一例になります。して、もっといい手があるよという方がいれば教えてください。この問題に詰まっていたんだという方の参考になれば幸いです。692,359iOS開発歴がそこそこ長くなってきました。Swiftが好きなのでSwiftの小ネタ中心にブログを執筆しています。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。本が出ていたので読んでみたところよかったので紹介させていただきます。使いたいときの注意点を書きました。新井成一64最近Sphinxつかってドキュメントを書いてるのですがなかなかイケています。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介255SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健232こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。カフェ店長のオカノです。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。