問題タブ [serde-json]
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.
rust - SerdeのSeqDeserializerでシーケンスをカスタム型にデシリアライズする方法は?
複雑ではないが、自然な JSON 表現を持たない型のカスタム シリアライザーとデリアライザーを作成しようとしています。
配列キーを持つ HashMap は、JSON マップ (文字列キーを持つ必要があります) として表すことはできません。だから私はペアのシーケンスとしてそれをシリアライズしたい. シーケンスのシリアル化のドキュメントは非常に明確で、次のように機能します。
これは、eg としてシリアル化され[[1,2,3,4,5], 1, [5,4,3,2,1], 2]
ます。シーケンスのデシリアライゼーションに関するドキュメントは、従うのがそれほど簡単ではなく、ビジターとSeqDeserializer
. 何かを渡すつもりなのか、戻り値を取得するつもりなのか、それとも何か他のことなのかわかりません。
これを配列キーを使用してマップに逆シリアル化するにはどうすればよいですか?
rust - serde_json を使用して、オブジェクトの配列から単一のフィールドを逆シリアル化するにはどうすればよいですか?
キーにオブジェクトの配列があるJSONがあり、その中の文字列の1つだけに興味があります:
私は持っている
どうすればそれを平らにして、Vec<String>
ではなく持つことができますVec<Name>
か? 例えば、私はで終わりたいです
rust - 実行時にserdeにフィールド名を指定する方法はありますか?
serdeを使用して JSON 構造を逆シリアル化しようとしていますが、フィールド名の一部が環境によって異なる場合があります。例えば:
開発中:
製品内:
名前は時間の経過とともに変化しないため、実行時にアプリに簡単に取得できる外部構成に保存していますが、デシリアライゼーションを処理するために構築した構造体にハードコードする必要は避けたいと考えています(この質問など)、構成から取得したフィールド名を逆シリアル化で使用する方法がわかりません。
これに対する解決策を検索したときに見つけた他のすべての結果は、私が抱えている特定の問題に対処していません。
実行時にフィールドの名前を指定する方法はありますか?それとも手動でデシリアライザーを実装し、config-fed フィールド名をそのように使用する必要がありますか?