前提・実現したいこと
nil
が入ったstructをパースする時にkeyごと無くしたい!
該当のソースコード
swift
1 struct Locate: Codable { 2 let osaka = "osaka" 3 let tokyo: String? = nil 4 let nagoya = "nagoya" 5 } 6 7 do { 8 let locate = try JSONEncoder().encode(Locate()) 9 let json = try JSONDecoder().decode(Locate.self, from: locate) 10 print(json) 11 } catch { 12 13 }
console
1{ 2 "osaka": "osaka", 3 "tokyo": null, 4 "nagoya": "nagoya" 5}
取得したいデータ
console
1{ 2 "osaka": "osaka", 3 "nagoya": "nagoya" 4}
何かいいやり方があれば教えてください…
このコードで出力されるのはLocateオブジェクト(の文字列表現)なんですが、欲しいのはJSON文字列ではないのでしょうか?
おっしゃる通りです。json文字列に変更しました。
構造体の定義そのものを変えるって出来ないはずです。質問タイトルを満たすなら別の構造体に入れ替えるとかですかね。何か根本的に違う気がするけども。
ですよね…リクエストごとにフォーマットが異なるのはおかしいですよね…。
nilが残っていると何に困るのでしょうか?
https://stackoverflow.com/questions/46728324/swift-codable-decode-manually-optional-variable こういうことが困っているのでしょうか。本当の課題が見えていないのかもしれないので、そのような場合、その問題に至った経緯などもご例示されるとよろしいかもしれません。
>fuzzball様 サーバ側に「値のないキーは送ってくるな」と言われており困っております。システム的にサーバ側が修正するのが妥当だとは思いますが大人の都合上そうならなさそうで困っている。といった所です。
回答1件
あなたの回答
tips
プレビュー