php エディターのイチゴの紹介: YAML は軽量のデータシリアル化形式で、簡潔で読みやすい構文を持ち、構成ファイルやデータ交換に広く使用されています。 PHP では、YAML 解析ライブラリを使用して、YAML データを構造体または文字列などの複雑なオブジェクトにアンマーシャリングできます。これにより、開発者は構成ファイルやその他のデータを簡単に処理および操作できるようになります。複雑なアプリケーションを構築する場合でも、構成管理を簡素化する場合でも、YAML 解析は PHP で重要な役割を果たします。
yaml を map[string]map[interface{}]string
などの複雑なオブジェクトにアンマーシャリングしてみてください。
問題は、構造体である interface{}
の string
と source
部分を区別できるようにしたいことです。
どうやら yaml は source
構造にアンマーシャリングする方法を知らないようです。そのため、unmarshaler
インターフェイスを実装する必要があります。
リーリー
*yaml.node を手動で繰り返し、各ノードで
func unmarshalyaml(value *node) error を呼び出す必要があると思います。
リーリー
type source struct { id string `yaml:"id"` name string `yaml:"name"` logoid string `yaml:"logoid"` url string `yaml:"url"` } type unft struct { itemmeta map[string]map[interface{}]string `yaml:"item_meta"` // could be // itemmeta map[string]map[string]string `yaml:"item_meta"` // or // itemmeta map[string]map[source]string `yaml:"item_meta"` }
https://www.php.cn/link/50f9999b2ee27e222c5513e945e9ea9c
マッピング タイプを変更しない必要がある場合、つまりカスタム キー タイプを追加しない場合は、unft にアンマーシャラーを実装し、any:
を使用して再マッピングすることもできます。
リーリー
https://www.php.cn/link/543378fb36a83810ded2d725f2b6c883
以上がYAML を構造体または文字列のいずれかである複雑なオブジェクトにアンマーシャリングします。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。