Skip to content

SwiftでJSONエンコードするときに数字の桁数を指定する

   

SwiftでJSONデコードするときに数字の桁数を指定する方法です。 文字列になってしまいましたが、以下のように encode メソッドを書くことで桁数を指定します。

import Foundation

struct MyStruct: Encodable {
    let number: Double

    enum CodingKeys: String, CodingKey {
        case number
    }

    func encode(to encoder: Encoder) throws {
        var container = encoder.container(keyedBy: CodingKeys.self)
        try container.encode(String(format: "%05f", number), forKey: .number)
    }
}

let myStruct = MyStruct(number: 1.0 / 3.0)
let data = try! JSONEncoder().encode(myStruct)
print(String(data: data, encoding: String.Encoding.utf8)!)
{"number":"0.333333"}

関連記事

  1. Swiftで数字が連番になった配列を作成する
  2. Swiftの細かい文法のメモ
  3. Swiftで引数を参照渡しをする
  4. iOSでMKMapViewの上に図形を描画する
  5. Swiftでプロジェクトの中に含まれるJSONファイルを読み込む
  6. SwiftでMKMapViewに図を追加する
  7. Swiftで配列からランダムに任意の個数抽出する