ホームページ >バックエンド開発 >Golang >Go で動的データ構造を使用して YAML を JSON に変換する方法

Go で動的データ構造を使用して YAML を JSON に変換する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-08 22:30:12153ブラウズ

How to Convert YAML to JSON with Dynamic Data Structures in Go?

明示的な構造体を使用しない YAML から JSON への変換

データ構造が動的であるため、YAML を JSON に変換する際の 1 つの課題が発生し、事前定義された構造体にマッピングします。このエラーは、map[interface{}]interface{} 形式のマップを含むインターフェイス タイプをマーシャリングしようとすると発生します。

この問題を回避するには、これらの動的マップを変換する再帰的変換関数が必要です。{}対応する JSON 互換の対応物、map[string]interface{} に変換します。さらに、データ構造内のスライスも走査して変換する必要があります。

再帰変換関数

次の Convert() 関数はこの目的を果たし、検出されたすべてのマップを再帰的に変換します。 [インターフェース{}]インターフェース{}と[]インターフェース{}値:

使用例

この例では、入力 YAML データが最初にインターフェース変数にアンマーシャリングされます:

convert() 関数が body 変数に適用され、すべての動的マップが次のように変換されます。 map[string]interface{}:

最後に、変換された本体が JSON 文字列にマーシャリングされます:

Output

出力 JSON 文字列は、明示的なマッピングがないにもかかわらず、入力 YAML データを正確に表します。 structs:

順序付けされていないため、JSON 出力の要素の順序が入力 YAML の順序と異なる場合があることに注意することが重要です。 Go マップの性質。要素の順序を保持することが重要な場合は、構造体のスライスなどの順序付けされたデータ構造の使用を検討してください。

以上がGo で動的データ構造を使用して YAML を JSON に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。