浮動小数点数の JSON 出力で末尾のゼロを保持する
Go では、シリアル化に json.Marshal() 関数がよく使用されます。データ構造を JSON 形式に変換します。ただし、変換プロセス中に浮動小数点数から末尾のゼロが削除される傾向があります。これは、使用するアプリケーションが数値の末尾にゼロがあることを予期している場合に問題になる可能性があります。
この問題に対処する 1 つの方法は、json.Marshaler インターフェイスを実装するカスタム浮動小数点型を作成することです。これにより、型を JSON にシリアル化する方法を定義できます。実装例を次に示します。
このコード内:
KeepZero 型を使用するには、データ構造内の元の float64 フィールドを KeepZero フィールドに置き換えます。例:
Pt オブジェクトで json.Marshal を呼び出すと、Value フィールドはカスタム MarshalJSON メソッドを使用してシリアル化され、必要に応じて末尾のゼロが保持されます。
これにより、次の JSON 出力が生成されます:
このソリューションでは、末尾の JSON 出力を保持できます。使用するアプリケーションの要求に応じて、浮動小数点数を JSON にシリアル化するときに浮動小数点数にゼロを含めます。
以上がGo の浮動小数点数の JSON 出力で末尾のゼロを保持する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。