SlideShare a Scribd company logo
Enviar búsqueda
Cargar
Iniciar sesión
Registrarse
JSONEncoderで詰まった話
Denunciar
とん とんぼ
Seguir
iOS & Android Developer
30 de May de 2023
•
0 recomendaciones
•
145 vistas
1
de
36
JSONEncoderで詰まった話
30 de May de 2023
•
0 recomendaciones
•
145 vistas
Descargar ahora
Descargar para leer sin conexión
Denunciar
Tecnología
JSONEncoderでnilをNullとしてエンコードした際に詰まった話と解決方法について解説しています。
とん とんぼ
Seguir
iOS & Android Developer
Recomendados
Introduction to Data Science
Christy Abraham Joy
47.8K vistas
•
51 diapositivas
Time Management & Productivity - Best Practices
Vit Horky
159.8K vistas
•
42 diapositivas
The six step guide to practical project management
MindGenius
29.3K vistas
•
27 diapositivas
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
9K vistas
•
21 diapositivas
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Applitools
53.7K vistas
•
138 diapositivas
12 Ways to Increase Your Influence at Work
GetSmarter
400.5K vistas
•
64 diapositivas
Más contenido relacionado
Último
CatBoost on GPU のひみつ
Takuji Tahara
780 vistas
•
30 diapositivas
遠征ドルヲタのための便利サイトを作ってみた
Kenta Fujimoto
11 vistas
•
24 diapositivas
ヒアラブルデバイスにおける音漏れ信号を用いた空中ジェスチャ認識
sugiuralab
6 vistas
•
1 diapositiva
遠隔お酌IoTLT2309.pptx
Yoshiaki Ito
149 vistas
•
12 diapositivas
拡散する画像生成.pdf
NTTDOCOMO-ServiceInnovation
45 vistas
•
38 diapositivas
20230921_IoTLT_vol103_kitazaki_v1.pdf
Ayachika Kitazaki
170 vistas
•
16 diapositivas
Último
(13)
CatBoost on GPU のひみつ
Takuji Tahara
•
780 vistas
遠征ドルヲタのための便利サイトを作ってみた
Kenta Fujimoto
•
11 vistas
ヒアラブルデバイスにおける音漏れ信号を用いた空中ジェスチャ認識
sugiuralab
•
6 vistas
遠隔お酌IoTLT2309.pptx
Yoshiaki Ito
•
149 vistas
拡散する画像生成.pdf
NTTDOCOMO-ServiceInnovation
•
45 vistas
20230921_IoTLT_vol103_kitazaki_v1.pdf
Ayachika Kitazaki
•
170 vistas
インフラチームとCCoEの関係.pptx
ssuser5c7ee4
•
28 vistas
画像生成AIの問題点
iPride Co., Ltd.
•
13 vistas
2023情報処理学会関西支部大会-G12.pdf
KoseiShimoda1
•
7 vistas
GraphQLはどんな時に使うか
Yutaka Tachibana
•
17 vistas
MLOps Course Slides_JP(配布用).pdf
Yuya Yamamoto
•
125 vistas
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
Tomoaki Tada
•
69 vistas
磁石内臓イヤリングによる磁力変化を利用したジェスチャ識別
sugiuralab
•
7 vistas
Destacado
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
DevGAMM Conference
3.1K vistas
•
12 diapositivas
Barbie - Brand Strategy Presentation
Erica Santiago
23.8K vistas
•
46 diapositivas
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Saba Software
25K vistas
•
64 diapositivas
Introduction to C Programming Language
Simplilearn
8.2K vistas
•
39 diapositivas
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
Palo Alto Software
88K vistas
•
39 diapositivas
9 Tips for a Work-free Vacation
Weekdone.com
7K vistas
•
14 diapositivas
Destacado
(20)
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
DevGAMM Conference
•
3.1K vistas
Barbie - Brand Strategy Presentation
Erica Santiago
•
23.8K vistas
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Saba Software
•
25K vistas
Introduction to C Programming Language
Simplilearn
•
8.2K vistas
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
Palo Alto Software
•
88K vistas
9 Tips for a Work-free Vacation
Weekdone.com
•
7K vistas
I Rock Therefore I Am. 20 Legendary Quotes from Prince
Empowered Presentations
•
142.7K vistas
How to Map Your Future
SlideShop.com
•
274.9K vistas
Beyond Pride: Making Digital Marketing & SEO Authentically LGBTQ+ Inclusive -...
AccuraCast
•
3.3K vistas
Read with Pride | LGBTQ+ Reads
Kayla Martin-Gant
•
1K vistas
Exploring ChatGPT for Effective Teaching and Learning.pptx
Stan Skrabut, Ed.D.
•
56.3K vistas
How to train your robot (with Deep Reinforcement Learning)
Lucas García, PhD
•
42.2K vistas
4 Strategies to Renew Your Career Passion
Daniel Goleman
•
121.8K vistas
The Student's Guide to LinkedIn
LinkedIn
•
86.9K vistas
Different Roles in Machine Learning Career
Intellipaat
•
12.3K vistas
Defining a Tech Project Vision in Eight Quick Steps pdf
TechSoup
•
9.6K vistas
The Hero's Journey (For movie fans, Lego fans, and presenters!)
Dan Roam
•
29K vistas
10 Inspirational Quotes for Graduation
Guy Kawasaki
•
302.3K vistas
The Health Benefits of Dogs
The Presentation Designer
•
35K vistas
The Benefits of Doing Nothing
INSEAD
•
52.7K vistas
JSONEncoderで詰まった話
1.
JSONEncoderで詰まった話 5月29日(火)Swift愛好会 とんとんぼ
2.
自己紹介 ● name: とんとんぼ ●
iOS & Android Dev ● 23卒 新卒 ● 最近、アイコンを変えました→ 旧アイコン 私が描きました
3.
アジェンダ 1. 背景 2. 本論 3.
結論
4.
ある日の出来事・・・
6.
これ頼むわ
7.
APIの内容 { "name" : "とんとんぼ", "age"
: 24, "hobby" : "Study Swift&Kotlin" } パラメータ名 型 必須 name String ⭕ age Int ❌ hobby String ❌ パラメータ リクエスト(例)
8.
ageとhobbyがnilの場合 はどうすればええん?
9.
Nullでリクエストして
17.
理想 現実
18.
ここまでが背景
19.
ちなみに
22.
なぜ、このようなことが起きるのか?
23.
原因の考察 ● nilをNullでエンコードするオプションは自分で書くことができるから、フレー ムワークとして用意する必要がない ● Nullと欠落を同一視するAPIが多い(?) ●
ペイロードは小さい方が良い 参考文献:[SR-9232]Optionals with nil value do not get encoded to JSON #3594
24.
nilをNullでエンコードしたい
25.
nilをNullにエンコードするには
26.
道標 ● JSONEncoderがキーを保持して、Nullをセットするように設定 ● 自動生成されたものは使えない ●
encode(to:)の実装を書く必要がある
30.
このままだと不便・・・
35.
まとめ ● SwiftではAPIにリクエストを投げる際に、Int?やString?型にnilを入れても情報が欠 落する ● おそらく、Kotlinも同様? ●
Nullと欠落を同様に扱うAPIが多いから(?) ● ペイロードは小さい方が良い 解決法: ● encode(to:)やプロパティラッパーで、nilをNullにエンコードするよう実装する必要が ある