問題タブ [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.
c# - jQuery1.5文字列とオブジェクトを.NETページメソッドに渡す
コードを単純化して配列を渡すだけにしましたが、コードをステップ実行してajaxリクエストのポイントに到達したときに まだ運がありません
jsonTextに含まれるもの:
と
背後にある私のコードは
responseTextは次のとおり
です。"リクエストの処理中にエラーが発生しました。"、 "StackTrace": ""、 "ExceptionType": ""}
私は何が間違っているのですか?
あなたの助けを借りた私の解決策:
皆様のご尽力に感謝申し上げます。私はあなたのすべての入力にどれほど感謝しているかを表現することはできません。私はそれを認めるのが恥ずかしいです、しかし私はこれに何日も立ち往生していました。
すべての回答から、これに取り組むにはさまざまな方法があることがわかります。私は2つの理由でJSON.stringifyソリューションが一番好きです。
- これにより、ajaxリクエストにパラメーターを追加するときに不注意によるタイプミスの危険性がなくなります。
- Olegによると、データオブジェクトをシリアル化するためのより効率的な方法です。
それで、これが私が問題を解決することに決めた方法です。
背後にあるコード:
助けてくれてありがとう
java - GSONを使用したJSON逆シリアル化は、ハッシュマップ内のハッシュマップからデータメンバーをスキップします
GSONを使用していくつかのJSONファイルを逆シリアル化します。これが私が書いた逆シリアル化メソッドです。JSONファイルを読み取り、このメソッドに渡す文字列としてすべてを保存します。このメソッドは、このプロジェクトに関連する5つのJSONファイルのうち4つで正常に機能します。
これが私が解析して文字列に入れたJSONファイルです。「jentry」にバインドされるオブジェクトがいくつかありますが、1つだけ含めます。奇妙に見える場合は、Firefoxプラグインを使用してJSONファイルを表示していて、そのプラグインからコピー/貼り付けしたことが原因である可能性があります。
問題は、GSONがJSONに戻されると(シリアル化?)、いくつかのフィールドが欠落していることです。これが出力です。関連する欠落行は、「template:」の下と「serviceID:」の上にあるすべてのものです。先に進み、オブジェクト全体を再度含めます。
これは、JSONファイル内のすべてのオブジェクトで発生します。NetBeansでのデバッグにより、JsonObject'jentry'には、JSON文字列の各データメンバーに対応するキーと値のペアを持つハッシュテーブルがあることがわかりました。'template'は、このハッシュテーブル内にハッシュテーブルとして格納されます。これは、私が正直に見つけることができなかった問題である場合とそうでない場合があります。
問題のあるJSONファイルでこのメソッドを最初に実行したときに、次の行で例外が発生しました。
問題は、この特定のJSONファイルに関連する特定のクラスに引数なしのコンストラクターがなかったため、次のようにいくつかのInstanceCreatorをGSONビルダーに登録する必要があったことです。
私がそれをした後、例外はスローされなくなり、もちろん欠落しているフィールドを除いて、すべてが機能したように見えます。
だから私はそこにいます、私は何が悪いのかについて本当に途方に暮れています。どんな助けでも大歓迎です。
c# - 文字列からすべての「非表示」文字を削除しますか?
ファイルからキーと値のペアのリストを読み取り、に書き込むための小さなクラスを作成していDictionary<string, string>
ます。このファイルの形式は次のとおりです。
これは非常に簡単なはずですが、ユーザーがこのファイルを手動で編集するので、空白、タブ、余分な行ジャンプなどをどのように処理する必要がありますか?おそらくReplaceを使用して空白とタブを削除できますが、他に欠落している「非表示」の文字はありますか?
または、英数字ではないすべての文字、「:」、および行ジャンプ(行ジャンプは、あるペアを別のペアから分離するものであるため)を削除してから、余分な行ジャンプをすべて削除することもできます。この場合、「一部を除くすべて」の文字を削除する方法がわかりません。
もちろん、「key1:value1:somethingelse」のようなエラーをチェックすることもできます。しかし、それは明らかにユーザーのせいであり、「無効な形式」というメッセージを表示するだけなので、そのようなことはそれほど重要ではありません。基本的なことを処理してから、他に問題が発生した場合に備えて、すべてをtry/catchブロックに入れたいと思います。
注:キーまたは値の内部であっても、空白はまったく必要ありません。
java - pojoへのジャクソンデシリアライゼーション
制御できないアプリケーションからの JSON オブジェクトをデシリアライズしようとしています。ここに私のJSON:
私のポジョは、
しかし、追加のフィールド「アセンブリ」と「染色体」のために機能しないため、次のような JSON を使用します。
それは単に機能します。より複雑なPOJOSを作成せずにこれを達成するために構成などを変更する方法はありますか?
c# - C# 自動プロパティ デシリアライゼーション - リスト
次のように、MVC アクションで自動逆シリアル化を使用しようとしています。
そして、これが私がデシリアライズしたいクラスです:
データの JSON オブジェクトをコントローラー アクションに渡します。
文字列のリストを除いて、すべてのプロパティが正しく逆シリアル化されます。JSON 配列をリストに変換したいのですが、代わりに JSON 配列文字列という 1 つの文字列を含むリストが返されます。
.Net Framework 3.5 でこれを達成する方法はありますか?
ありがとう
java - jsonフィールドをgsonでプレーン文字列に逆シリアル化します
jsonオブジェクトをJavaBeanに逆シリアル化しようとしています。object
私が直面している主な問題は、json文字列のフィールドが、潜在的に正しいjsonオブジェクトを含んでいる場合でも、プレーン文字列として扱いたいということです。jsonの構造は次のようになります。
object
値がオブジェクトに逆シリアル化されないように、値を無視するようにgsonに指示するにはどうすればよいですか?String
フィールドから型を取得したら、適切な逆シリアル化を処理できるように、Beanのプレーンフィールドにのみマップする必要がありtype
ます。
.net - カスタム コレクションの JavascriptDeserializer
以下のようなカスタム コレクション タイプがあります。
カスタム JavascriptConverter を使用して JSON からこの型のインスタンスを逆シリアル化したい
逆シリアル化コード:
MyClass には KeyValuePairCollection タイプのフィールドがあります。このコードをデバッグし、ブレークポイントを Deserialize メソッドに設定すると、このメソッドは呼び出されません。次の例外が発生します。
値 "System.Collections.Generic.Dictionary
2[System.String,System.Object]" is not of type "System.Collections.Generic.KeyValuePair
2[System.Int32,System.String]" は、このジェネリック コレクションでは使用できません。パラメータ名: 値
ノート
MyClass で KeyValuePairCollection(Of Integer, String) の代わりに List(Of KeyValuePair(Of Integer, String)) を使用すると、すべて問題ありません
java - JSONデシリアライズ
JSONでは、クライアントが数値データ型(decimlasを使用)を送信するときに、サーバー側でどの逆シリアル化クラスを使用する必要がありますか。ダブル?
編集: SS側はJavaです
c# - XMLをC#オブジェクトに逆シリアル化しようとしています
UIのフォームのシリアル化されたインスタンスを表すXMLファイルがあります。このフォームはユーザーによって設計され、他のユーザーがフォームに入力できるようにします。フォームが保存されると、インスタンスデータがデータベースの列にシリアル化されます。このインスタンスデータを呼び出しています。解析する必要がありますが、C#標準の逆シリアル化を使用した逆シリアル化で問題が発生しています。これは、ユーザーに関する限り1つのフォームですが、インスタンスデータは実際には「サブフォーム」で構成されています。これらは、ユーザーに表示されるフォームで構成されているフォームです。
XMLドキュメントの形式は次のとおりです。
ご覧のとおり、コントロールは他のコントロールにネストでき、プロパティはコントロールの一部です。
フォームレベルまで逆シリアル化を行っていますが、コントロールを逆シリアル化しようとすると壊れます。
このファイルにネストされたコントロールは、私にとって重要ではありません。階層とそのすべてのプロパティに関係なく、すべてのコントロールの1つのレベルのコレクションを取得しようとしているためです。コントロールにプロパティを追加して、コントロールの親の名前が存在する場合はそれを示しますが、それ以外は、コントロールとそのプロパティのフラットなコレクションを持つオブジェクトが必要です。
階層に関係なく、コントロールがすべて同じレベルにあるかのように逆シリアル化でこのXMLを確認し、すべてのネストを自動的に逆シリアル化する方法はありますか?
ヒントをありがとう!
Visual Studio 2008のXMLファイルから生成されたXSDは次のとおりです(ご覧のとおり、元のXMLには、各フォームの上にフォームがないか、各セクションの上にセクションがありません。XMLをロードするときに追加します。
これは、逆シリアル化に使用しているクラスの例です。
java - axis2 から生成された Java オブジェクトに xml をデシリアライズする方法
Eclipse を使用して、サード パーティの wsdl を指定して Java クライアント コード スタブを生成しました。クライアントはうまく機能し、Web サービスにアクセスして、必要なことを実行できます。
ここで、Web サービスに接続しなくても実行できる単体テストをいくつか書きたいと思います。axis2スタック内のメカニズムを使用して、xmlファイルをJavaクライアントスタブコードのJavaオブジェクトの1つに逆シリアル化することは可能ですか?
たとえば、クライアント スタブ コードのクラスの 1 つは「Contact」です。通常は SOAP リクエストに含まれる xml を模倣した xml ファイルがあるとします。それをJava Contactオブジェクトに逆シリアル化するにはどうすればよいですか?
以前に XMLBeans を使用したことがありますが、Java クライアントが既に内部でこのデシリアライズを行っているように見えるので、もっと簡単な方法があることを願っていますか? おそらく、axis2 には、xml のチャンクを取得して Java オブジェクトを返すメソッドがありますか?
アップデート:
私はこれを試しました:
私はこれを得る:
次に、これを試しました:
しかし、その後、連絡先クラスが使用するクラスの1つという例外が発生しますdoes not have a no-arq default constructor
これが手早く簡単にできることを望んでいましたが、axis2 と jaxb の使用方法を完全に理解する時間ができるまで、xml を手動で解析するだけです。