問題タブ [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.

0 投票する
7 に答える
373547 参照

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 のサンプルは次のとおりです。

0 投票する
3 に答える
52822 参照

c# - Json.NET を使用して JSON をオブジェクトに逆シリアル化する

新しいStackOverflow APIで少し遊んでいます。残念ながら、私の JSON は少し弱いので、助けが必要です。

ユーザーのこの JSON を逆シリアル化しようとしています。

属性で装飾したオブジェクトにJsonProperty:

次の例外が発生します。

Newtonsoft.Json.JsonSerializationException: 必要なプロパティ 'user_id' が JSON に見つかりません。

これは、JSON オブジェクトが配列だからですか? もしそうなら、どうすれば1つの User オブジェクトに逆シリアル化できますか?

前もって感謝します!

0 投票する
2 に答える
1293 参照

asp.net-ajax - .NET でカスタム型の JSON シリアル化形式を制御する

正規化された文字列を格納する PhoneNumber クラスがあり、文字列 <-> Phone の暗黙的な演算子を定義して、PhoneNumber を文字列として簡単に処理できるようにしました。また、ToString() メソッドをオーバーライドして、常にクリーンなバージョンの数値 (ハイフン、括弧、スペースなし) を返すようにしました。番号を表示するビューでは、明示的に phone.Format() を呼び出します。

ここでの問題は、PhoneNumber を持つエンティティを JSON にシリアライズすることです。JavaScriptSerializer はそれを としてシリアライズします[object Object]

(555)555-5555 形式の文字列としてシリアル化したい。

カスタム JavaScriptConverter の作成を検討しましたが、JavaScriptConverter.Serialize() メソッドは名前と値のペアの辞書を返します。PhoneNumber をフィールドを持つオブジェクトとして扱いたくありません。単純に文字列としてシリアル化したいのです

0 投票する
1 に答える
9123 参照

serialization - JSON.NETでのバイト配列のシリアル化

この単純なクラスを考えると:

バイト配列がbase-64でエンコードされるように、JSON.NETを介して配置できます。

次に、この少し複雑な方法でもう一度読み直すことができます。

すべて良い。しかし、私が最初にの内容をjsonReaderJTokenに変えると

そして、それを:JsonReaderでラップすることによって、それをに戻します。JTokenReader

次に、逆シリアル化により、「予期されたバイトが文字列を取得しました」という例外がスローされます。

新しいJsonReaderは、元のJsonReaderと論理的に同等であるべきではありませんか?「raw」JsonTextReaderには文字列をbase-64バイト配列として扱う機能があるのに、JTokenReaderバージョンにはないのはなぜですか?

0 投票する
1 に答える
22676 参照

json.net - Json.Net ライブラリ JsonConvert

http://json.codeplex.comライブラリを使用しています。XML を JSON に、またはその逆に変換しようとしています。

JsonConvertただし、クラスを使用した例があります

JsonConvert名前空間 で見つかりませんNewtonsoft.Json。class しか見つかりませんでしたJavaScriptConvert

何か案は?

0 投票する
2 に答える
2267 参照

asp.net - Newtonsoft.json スロー エラー: 配列は 1 次元配列ではありませんでした

オブジェクト製品をシリアル化しようとすると、エラーが発生します。

Newtonsoft.json で 2 次元配列をシリアル化する方法はありますか

前もって感謝します。SIA

0 投票する
1 に答える
6109 参照

c# - JSON.Net を使用した JsonConvert.DeserializeObject の結果の検証 (「解析を試す」と考えてください)

独自のオブジェクト構造で試して解析する必要がある着信メッセージがあります。これらの一部は整形式の JSON オブジェクトであり、一部は意味のないものです。

JsonConvert.DeserializeObject<MyObject>(incmoingString);はこれを行うために使用します。ただし、これにより、着信が総ガベージである場合に例外が発生することがあります。また、受信文字列がある程度問題ない場合でも、オブジェクト構造が不完全になることがあります。最終的には機能することがあります。

変換を try/catch でラップし、逆シリアル化された結果に必要なプロパティを取得したことを手動で検証します。

これを行うより良い方法はありますか?

0 投票する
1 に答える
190 参照

serialization - Subsonic 3 : 特定の列のみを取得する

私が使用するもの: Subsonic 3、SQL Server 2008、Json.Net

ここに私の問題があります:

ID、ロット番号、住所、場所、所有者 ID を持つ家のテーブルと、ID、名前、説明を持つ所有者テーブルがあります。

場所が「サンフランシスコ」の家の所有者名と住所だけを取得したいと思います。

サブソニックでこれを行うにはどうすればよいですか?

私の問題は、型付きリストまたはデータリーダーしか取得できないことです。配列または単純なリストのみを取得する方法がわかりません。

最善の解決策は何ですか?カスタム クラスを作成しますか? ビューを作成しますか? 他に何か ?

私の目的は、データをシリアル化してアプリケーションに送り返すことですが、多数の関係があるため、シリアル化は非常に長くなります (ここでの私の例は単純化されています。実際には、家 - 所有者 - 都市 - 国などがあります)。 2つのフィールドだけが必要です...

ありがとうございました

0 投票する
3 に答える
16235 参照

.net - Flags 属性を持つ Enum.TryParse

TryParse以下に示すように、値またはその名前で列挙するコードを記述しました。Flagsこのコードを拡張して、属性を持つ列挙型の解析を含めるにはどうすればよいですか?

現在、このコードは次の列挙型に対して機能します。

次の場合は機能しません。

ありがとう!

0 投票する
4 に答える
15456 参照

serialization - JSON.NET DeserializeObject> リストを返さず、エラーも出さない

Json.NET ライブラリとその DeserializeObject メソッドに行き詰まりました。ドキュメントは、ここで何が起こっているのかはっきりしていないので、JSON をユーザー オブジェクトのリストに逆シリアル化する方法を誰かが説明してくれれば幸いです。

このJSONをデシリアライズしようとしています

ユーザーオブジェクトに

使用して

成功せずに。エラーもユーザーも取得していません。JsonConvert.DeserializeObject は黙って死ぬだけです。

モックアップを作成し、その JSON 文字列を使用して SerializeObject と DeserializeObject を実行しようとしましたが、結果は同じで、エラーも結果もありませんでした。

何が問題なのかを確認するために serializersettings を渡そうとしますが、エラーも発生しません

逆シリアル化中に何が起こっているのかを確認しようとすると、コンテキストが初期化されていないことに気付きました?!

ここで何が間違っていますか?これをユーザーのリストに逆シリアル化するにはどうすればよいですか?