問題タブ [yamldotnet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - yaml 文字列を解析する方法
ハッシュテーブルのリストを取得できるように、C# で yaml を解析したいと考えています。YamlDotNet を使用しています。これが私のコードです:
失敗しませんが、null オブジェクトが返されます。
私のyamlは次のようなものです:
自分で実装することなく、yaml を解析して目的の型に変換するにはどうすればよいですか?
vb.net - YamlDotNet - Guid プロパティのシリアル化により空の括弧が生成される
YamlDotNet ライブラリを使用して、Yaml でいくつかのオブジェクトをシリアル化しています。Guid プロパティのシリアル化でいくつかの問題に遭遇しました。Guid プロパティのシリアル化により、空の括弧が生成されます (例: {} )
以下のコードを参照してください
このコードは以下を出力します:
クラスで:
何か不足していますか、それともライブラリの問題ですか?
c# - YamlDotNet とカスタム型
yaml と yamldotnet を発見しています。これがかなり基本的な質問である場合は申し訳ありません:
次のような単一の感嘆符を使用して、yaml でユーザー定義型を定義することは意味がありますか。
赤: !color { 赤: 255, 緑: 0, 青: 0 }
これは YamlDotNet によってどのようにデシリアライズされますか? つまり、型の色が.netの対応する色型に確実にマッピングされるようにする方法はありますか?
次の例https://dotnetfiddle.net/HD2JXMの理解から、YamlDotNet は yaml ドキュメントと .net クラス間の暗黙的な対応を使用して、yaml プロパティを対応するクラス プロパティにマップします (例に示すように、これはカスタマイズできます)。注釈付き)。ただし、型チェックは行われません。
物事をさらに明確にする。一連のウィジェットに対応する次の yaml ドキュメントがあります。
そして、それを c# の対応する型階層にマップしたい:
同様の質問ポスターがここにあることに注意してください: Using custom type resolverは回答されていません。
ありがとう!
c# - YamlDotNet ライブラリはドキュメント区切りをサポートしていますか?
このYAML
ファイル:
このコードでデシリアライズしています:
結果は例外ですYamlDotNet.dll
:
Update1: SharpYaml: 同じ例外
Update2: @DarrelMiller: はい、最初の例からは明らかではありませんが、ドキュメントセパレーターの必要性は2番目の例で見られます:
そのため、のタイプを変更するにはセパレーターが必要でしたDeserializer
。
@AntoineAubry: 回答と YamlDotNet に感謝します。どちらも気に入っています。
yamldotnet - YamlStream から真のブール値を取得する
YamlDotnet を使用して、YamlStream を介して yaml ストリームを文字列オブジェクトの辞書に解析します。YamlMappingType、YamlSequenceNode、および YamlScalarNode は、値を辞書、リスト、または文字列に変換するために使用されます。
しかし、同等の文字列ではなく実際のブール値を取得する必要があり、そのために使用します
YamlNode を使用する価値があります。
それを行うより良い方法はありますか?おそらく、YamlNode の別の子タイプでしょうか?
編集: YAML ファイルの内容がわかりません。値を含む辞書を取得したいだけです。
yamldotnet - オブジェクト内でのオブジェクトの使用
YAMLDOTNETのシリアライザーを使用しようとしていますが、文字列だけで構成されておらず、内部に特別なオブジェクトを持っているオブジェクトがあると、いくつかの問題が発生します。
シリアル化すると、{} 文字列が取得されます。たとえば、オブジェクト グラフのシリアル化サンプルでは、構造体 Address を定義します。次に、クラス Address の新しいオブジェクトを内部に作成します。これは最終的に領収書に割り当てられます。結果は、yaml ファイルのアドレス フィールドの {} にもなります。
サンプルコードはこちらからもご覧いただけます。これにより、次のような出力が作成されます。
したがって、bill_to は {} として表示されます