問題タブ [json.net]
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# - JSON.NET を使用して JSON データを C# に逆シリアル化する
私は C# と JSON データの操作に比較的慣れていないため、ガイダンスを求めています。私は C# 3.0 と .NET3.5SP1、および JSON.NET 3.5r6 を使用しています。
JSON 構造から入力する必要がある定義済みの C# クラスがあります。ただし、Web サービスから取得されたエントリのすべての JSON 構造に、C# クラス内で定義されている可能性のあるすべての属性が含まれているわけではありません。
私は、間違った難しい方法と思われることを行っていて、JObject から各値を 1 つずつ選択し、文字列を目的のクラス プロパティに変換しています。
JSON 構造を C# クラスに逆シリアル化し、JSON ソースから欠落している可能性のあるデータを処理する最良の方法は何ですか?
私のクラスは次のように定義されています。
解析する JSON のサンプルは次のとおりです。
c# - Json.NET を使用して JSON をオブジェクトに逆シリアル化する
新しいStackOverflow APIで少し遊んでいます。残念ながら、私の JSON は少し弱いので、助けが必要です。
ユーザーのこの JSON を逆シリアル化しようとしています。
属性で装飾したオブジェクトにJsonProperty
:
次の例外が発生します。
Newtonsoft.Json.JsonSerializationException: 必要なプロパティ 'user_id' が JSON に見つかりません。
これは、JSON オブジェクトが配列だからですか? もしそうなら、どうすれば1つの User オブジェクトに逆シリアル化できますか?
前もって感謝します!
asp.net-ajax - .NET でカスタム型の JSON シリアル化形式を制御する
正規化された文字列を格納する PhoneNumber クラスがあり、文字列 <-> Phone の暗黙的な演算子を定義して、PhoneNumber を文字列として簡単に処理できるようにしました。また、ToString() メソッドをオーバーライドして、常にクリーンなバージョンの数値 (ハイフン、括弧、スペースなし) を返すようにしました。番号を表示するビューでは、明示的に phone.Format() を呼び出します。
ここでの問題は、PhoneNumber を持つエンティティを JSON にシリアライズすることです。JavaScriptSerializer はそれを としてシリアライズします[object Object]
。
(555)555-5555 形式の文字列としてシリアル化したい。
カスタム JavaScriptConverter の作成を検討しましたが、JavaScriptConverter.Serialize() メソッドは名前と値のペアの辞書を返します。PhoneNumber をフィールドを持つオブジェクトとして扱いたくありません。単純に文字列としてシリアル化したいのです。
serialization - JSON.NETでのバイト配列のシリアル化
この単純なクラスを考えると:
バイト配列がbase-64でエンコードされるように、JSON.NETを介して配置できます。
次に、この少し複雑な方法でもう一度読み直すことができます。
すべて良い。しかし、私が最初にの内容をjsonReader
:JToken
に変えると
そして、それを:JsonReader
でラップすることによって、それをに戻します。JTokenReader
次に、逆シリアル化により、「予期されたバイトが文字列を取得しました」という例外がスローされます。
新しいJsonReaderは、元のJsonReaderと論理的に同等であるべきではありませんか?「raw」JsonTextReader
には文字列をbase-64バイト配列として扱う機能があるのに、JTokenReader
バージョンにはないのはなぜですか?
json.net - Json.Net ライブラリ JsonConvert
http://json.codeplex.comライブラリを使用しています。XML を JSON に、またはその逆に変換しようとしています。
JsonConvert
ただし、クラスを使用した例があります
JsonConvert
名前空間 で見つかりませんNewtonsoft.Json
。class しか見つかりませんでしたJavaScriptConvert
。
何か案は?
asp.net - Newtonsoft.json スロー エラー: 配列は 1 次元配列ではありませんでした
オブジェクト製品をシリアル化しようとすると、エラーが発生します。
Newtonsoft.json で 2 次元配列をシリアル化する方法はありますか
前もって感謝します。SIA
c# - JSON.Net を使用した JsonConvert.DeserializeObject の結果の検証 (「解析を試す」と考えてください)
独自のオブジェクト構造で試して解析する必要がある着信メッセージがあります。これらの一部は整形式の JSON オブジェクトであり、一部は意味のないものです。
私JsonConvert.DeserializeObject<MyObject>(incmoingString);
はこれを行うために使用します。ただし、これにより、着信が総ガベージである場合に例外が発生することがあります。また、受信文字列がある程度問題ない場合でも、オブジェクト構造が不完全になることがあります。最終的には機能することがあります。
変換を try/catch でラップし、逆シリアル化された結果に必要なプロパティを取得したことを手動で検証します。
これを行うより良い方法はありますか?
serialization - Subsonic 3 : 特定の列のみを取得する
私が使用するもの: Subsonic 3、SQL Server 2008、Json.Net
ここに私の問題があります:
ID、ロット番号、住所、場所、所有者 ID を持つ家のテーブルと、ID、名前、説明を持つ所有者テーブルがあります。
場所が「サンフランシスコ」の家の所有者名と住所だけを取得したいと思います。
サブソニックでこれを行うにはどうすればよいですか?
私の問題は、型付きリストまたはデータリーダーしか取得できないことです。配列または単純なリストのみを取得する方法がわかりません。
最善の解決策は何ですか?カスタム クラスを作成しますか? ビューを作成しますか? 他に何か ?
私の目的は、データをシリアル化してアプリケーションに送り返すことですが、多数の関係があるため、シリアル化は非常に長くなります (ここでの私の例は単純化されています。実際には、家 - 所有者 - 都市 - 国などがあります)。 2つのフィールドだけが必要です...
ありがとうございました
.net - Flags 属性を持つ Enum.TryParse
TryParse
以下に示すように、値またはその名前で列挙するコードを記述しました。Flags
このコードを拡張して、属性を持つ列挙型の解析を含めるにはどうすればよいですか?
現在、このコードは次の列挙型に対して機能します。
次の場合は機能しません。
ありがとう!
serialization - JSON.NET DeserializeObject> リストを返さず、エラーも出さない
Json.NET ライブラリとその DeserializeObject メソッドに行き詰まりました。ドキュメントは、ここで何が起こっているのかはっきりしていないので、JSON をユーザー オブジェクトのリストに逆シリアル化する方法を誰かが説明してくれれば幸いです。
このJSONをデシリアライズしようとしています
ユーザーオブジェクトに
使用して
成功せずに。エラーもユーザーも取得していません。JsonConvert.DeserializeObject は黙って死ぬだけです。
モックアップを作成し、その JSON 文字列を使用して SerializeObject と DeserializeObject を実行しようとしましたが、結果は同じで、エラーも結果もありませんでした。
何が問題なのかを確認するために serializersettings を渡そうとしますが、エラーも発生しません
逆シリアル化中に何が起こっているのかを確認しようとすると、コンテキストが初期化されていないことに気付きました?!
ここで何が間違っていますか?これをユーザーのリストに逆シリアル化するにはどうすればよいですか?