hamburger

主に日記

Swiftでsnake_caseのJSONをCamelCaseで定義されたStructのパラメータに変換する

使っているExtension

gist.github.com

例えばjson

{
  foo_bar: "baz" # よくあるsnake_case
}

みたいな形式の場合は以下のようにして使う

struct ModelStruct: Codable{
  let fooBar: String // CamelCaseに変換する
}

// dataはAlamofireのresponse
do {
  return try JSONDecoder.commonSettingInstance.decode(ModelStruct.self, from: data)
} catch let error{
  print("error \(error)")
  return nil
}

// 逆に、DataとかStringにしたい場合はEncoderを使う
do {
  let data = try JSONEncoder.commonSettingInstance.encode(self)
  let result = String(data: data, encoding: .utf8)!
  return result
} catch let error{
  print("error \(error)")
  return nil
}