問題タブ [jsonconvert]
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# - 複雑なネストされたプロパティ用のカスタム モデル バインダー AspNet Core 2.2
私は Angular クライアントを持っており、この本文で POST リクエストを作成します:
{"名前":"例","通貨":"ユーロ"}
私は Odata プロトコルを使用しており、コントローラーは次のとおりです。
テンプレート付き:
および通貨:
Currency は、プライベート コンストラクターを持っているため、特定のクラスです。このため、Currency の新しいインスタンスを作成することはできません。既存のインスタンス (EUR または USD) を使用したい。
(StringEnumeration は Parse メソッドと TryParse メソッドをサポートし、正しいインスタンスを返します)
標準構成:
私の問題は、クライアントが本文でhttp://localhost:4200/templateでPOST を呼び出すときです : {"Name":"example","Currency":"EUR"}
Model Bindel は Currency.EUR インスタンスの「EUR」を変換できないため、モデル バインダーがインスタンス Currency.EUR を使用して Currency プロパティを持つ Template を作成するのに役立つ何かを提供したい
生成されるエラーは次のとおりです。プロパティ「Currency」の値を読み取ろうとしたときに、null 以外の値を持つ「PrimitiveValue」ノードが見つかりました。ただし、null 値を持つ「StartArray」ノード、「StartObject」ノード、または「PrimitiveValue」ノードが予期されていました。
私のプロジェクトでは、内部に Currency プロパティを持つ多くのクラスがあります。
Template クラスで IModelBinder を使用しようとしましたが、動作しますが、通貨プロパティの modelBinder を書きたくありません。
JsonConverterで試してみましたが、うまくいきません(何か間違っているかもしれません)
私の期待される結果は、次の値を持つ Template インスタンスです。
c# - 独自のクラスから小数から整数に変換する方法は?
json プロパティを持つクラスがあり、10 進プロパティに対してのみ乗算する必要があるゼロの数である整数を受け取りたいと考えています。
2 = 100 倍 3 = 1000 倍など
...
...
...
...
例:
3 (int) を渡すと
12.00 (10 進値)
12.00×1000(ゼロ3個)
結果: 12000
c# - JSON を複数のオブジェクトからオブジェクトのリストに逆シリアル化する
サービスから受信した JSON 応答のマッピング オブジェクト/応答モデルを作成できません。
カスタム JsonConverter を作成しようとしましたが、デシリアライズの問題を解決するのに役立つ適切な方法が見つかりませんでした
以下は、サービスから取得している JSON 応答です。
例 1:- 同じサービスが以下の JSON 形式を返すことができます
JsonConvert を使用したデシリアライズに簡単に使用できるように、C# ルート オブジェクト クラスを作成します。