問題タブ [deserialization]
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.
java - Jackson JSON + Java Generics
Jackson jsonライブラリList<Bill
を使用して、以下のJSONを>javaオブジェクトに逆シリアル化/マッピングしようとしています。(このjsonはjacksonによって生成され、Iamは簡潔にするためにその部分を省略しています)
これが私の変換方法です:
Billエンティティは以下のとおりです。
そして私はこのエラーを受け取ります:
これが、i / p jsonを返す単純化されたspring3コントローラーです(Jacksonマッピングがデフォルトビューとして構成されています)。
私は明らかな何かが欠けていると思います..しかしそれが何であるかわかりません..何かアイデアはありますか?
arrays - Gsonまたはネストされた内部クラスを使用した内部クラスの任意のオブジェクトjson配列の逆シリアル化
1 つの Json 文字列を Gson で逆シリアル化しようとすると問題が発生します。文字列は次のようになります (注: 単純化しただけですが、問題のある部分はそのままにしておきます。そのため、Json 構文エラーが発生する可能性がありますが、使用している文字列がオンライン バリデーターで確認されています。大丈夫です):
ここで、json 配列 (「定義」と「行」) を逆シリアル化しようとすると、問題が発生します。残りのフィールドは、逆シリアル化で適切な値を取得します。私が使用しているクラス定義は次のとおりです(簡単にするためにゲッター/セッターはありません):
RateContainer (Gson 仕様によると、クラス Container への内部静的クラス):
Json 文字列を解析するには、次を使用します。
次の例外が発生します。
クラス定義にうまく機能しない何かがなければならないようです。Gson API を確認しましたが、リストを逆シリアル化するために通常行うことは次のとおりです。
したがって、次のようなものを使用して、これらの配列を最初に取得できるのではないかと考えました。
次に、「定義」と「行」を取得しますが、すべてを Container オブジェクトに保持することをお勧めします。このような方法でこれらのリストを逆シリアル化する方法はありますか? クラス定義に何か問題がありますか?
よろしくお願いします!
c# - C# .NET (win7 phone) で「DataContractJsonSerializer」を使用して「ネストされた」Json ファイルを読み込むにはどうすればよいですか?
私のjsonファイルがこのように見える場合、私は問題を抱えています
{ "数字": "45387", "単語": "スペース バケット"}
私はそれをうまく読むことができますが、次のようになっている場合:
{ "Main" :{ "Numbers": "45387", "Words": "space buckets"},
"Something" :{"Numbers": "12345", "Words": "Kransky"} }
情報が返ってきません。メインとサムシングを切り替える方法がわかりません! このコードを使用して、この「ネストされた」情報を含む JSON をロードします。
// 私の情報を保持するために使用されているクラス
クラスを空に戻します。
グループ名を DataContract に追加しようとしました。[DataContract, Name="Main"] ですが、これでもクラスの値が空になります。
また、シリアライザーのオーバーロードに「メイン」を追加しようとしました。var ser = new DataContractJsonSerializer(typeof(myInfo), "Main");
これにより、エラーが発生します: 名前空間 '' からの要素 'Main' が必要です..名前が 'root'、名前空間 '' の 'Element' が見つかりました。
提供されているjsonリーダーを使用したいだけです。私はjson.NETを調べましたが、ドキュメントはjsonの記述に重く、読み取りに関する情報がまばらであることがわかりました。確かに、ここで単純なものが欠けています!
c# - c# デシリアライズする XML が正しくない
この XML があり、デシリアライズする必要がありますが、型が正しくありません。
どうすれば修正できますか?int と string を許可するのが好きです。
事前にthx、
c# - json文字列を逆シリアル化します
デシリアライズ後に値を保持するクラスを設計するにはどうすればよいですか?JavaScriptSerializerを使用しています
c# - C# を使用した JSON の逆シリアル化
C# で JSON を逆シリアル化しようとする際に、情報を入手するのが難しいことに気づきました。
Google カスタム検索の結果が JSON 形式で返されます。手順を確認し、逆シリアル化を試みる順序を確立したいだけです。これは正しいですか?
- JSON 形式に一致するクラスを作成する必要があります。スキーマファイルを作成するようなものです。
JavaScriptSerializer()
クラスと メソッドを使用してdeserialize
、関連するビットを抽出します。
私が遭遇するだろうと思われる問題の 1 つは、返されるすべてのデータを必要とせず、html リンクのみを必要とすることです。どうすればそれを達成できますか?
アップデート
次の JSON スニペットと C# コードで質問を更新しました。文字列 'links' をコンソールに出力したいのですが、うまくいきません。クラスを間違って定義していると思いますか?
Google カスタム検索からの JSON
C# スニペット
ありがとう
c# - XmlSerializerを使用して複合型要素を逆シリアル化するとnullになります
私は次のスキーマを持っています:
および次のクラス:
次のコードを使用して、オブジェクトを逆シリアル化します。
エラーは発生しませんが、オブジェクトのプロパティはnullです。何が起こっているかを知っている人はいますか?
c# - DataContractJsonSerializer は、さまざまな型のメンバーに対して InvalidCastException をスローします
でデシリアライズしたい文字列がありますDataContractJsonSerializer
。JSON 文字列には、オブジェクトである場合もあれば文字列である場合もあるメンバーがあります。そのようです:
また
2 番目のケースのオブジェクトの構造は知っていますが (そのクラスを呼び出しましょう)、 2 つの可能な型のオブジェクトを変換するにはInner
どうすればよいでしょうか?DataContractJsonSerializer
string
からに変換する明示的および暗黙的なキャスト演算子を作成しようとしましたInner
が、ヒットしません。アンInvalidCastException
は投げられ続けます。
json - ネストされた辞書でjsonを逆シリアル化するには?
一部のエンドポイントでは、SimpleGeo.com は次のようなものを返します。
( http://simplegeo.com/docs/api-endpoints/simplegeo-features#get-detailed-informationを参照)。
今、「プロパティ」部分の逆シリアル化に小さな問題があります。たとえば Dictionary のタイプを使用すると、それは適切な辞書に変換されますが、「分類子」の値は 1 つの {} 文字列にすぎません。
サブ配列をさらに別のディクショナリなどに逆シリアル化するように json.net に指示する方法はありますか? 基本的に、その戻り値には多くの単純なキー/値がありますが、「分類子」サブ配列 (「タグ」を参照) だけでなく、値の深さがさらに深くなる可能性があることはわかっています。 ..
基本的に私が疑問に思っていたのは、プロパティ部分を適切に逆シリアル化するにはどうすればよいですか? 助言がありますか?独自の JsonConverter を作成してもかまいませんが、それがなくても機能する方法が既に存在する可能性があります。
java - シリアル化フレームワーク (引数のないコンストラクターなし)
次の(Java)に基づいてオブジェクトのグラフをシリアル化する最良のアプローチに関する情報を探しています:
- 同じクラスの 2 つのオブジェクトは、状態が等しい場合、true と比較して (ビット単位で) バイナリが等しい必要があります。(JVM フィールドの順序に依存してはなりません)。
- コレクションは配列のみでモデル化されます (コレクションはありません)。
- すべてのインスタンスは不変です
- シリアル化形式は、テキスト ベースではなく byte[] 形式にする必要があります。
- 私はグラフ内のすべてのクラスを管理しています。
シリアル化をサポートするためだけに、クラスに空のコンストラクターを入れたくありません。私は独自のトラバーサルと Objenisis に基づいたソリューションの実装を検討しましたが、私の問題はそれほどユニークではないようです。最初に既存の/完全なソリューションを確認することをお勧めします。
更新された詳細:
まず、あなたの助けに感謝します!
- オブジェクトは、オブジェクトの状態に基づいて、まったく同じビット順序にシリアル化する必要があります。バイナリ コンテンツはデジタル署名されるため、これは重要です。シリアル化された形式の再構築は、元のビットが格納されているのではなく、オブジェクトの状態に基づいて行われます。
- 異なるテクノロジー間の相互運用性は重要です。exで実行されているソフトウェアが表示されます。将来的には.Net。シリアル化された形式に Java フレーバーはありません。
不変性のコメントに関する注意: 配列の値は、引数からコンストラクターの内部フィールドにコピーされます。あまり重要ではありません。
よろしくお願いします、
ニクラス・リンドバーグ