タグ付けされた質問 「serialization」

シリアライゼーションとは、データ構造を簡単に保存または送信できる形式に変換し、その後再構築するプロセスです。

3
DataContractJsonSerializerとJavaScriptSerializerの違いは何ですか?
.NET FrameworkにはSystem.Runtime.Serialization.Json.DataContractJsonSerializerとSystem.Web.Script.Serialization.JavaScriptSerializerが同梱されており、どちらもJSONをデシリアライズします。これらのタイプのどちらを他のタイプよりもいつ選択するかをどのようにして知ることができますか?MSDNはそれらの相対的な利点が何であるかを明確にしません。 JSONを使用または放出するプロジェクトがいくつかあり、それぞれに対して選択されたクラスは、各プロジェクトの主要開発者の意見に依存しています。単純なものもあれば、JSONからのマネージ型の作成に関する複雑なロジックを持つものもあります(型はストリームに厳密にマッピングされません)が、速度は特に重視されず、1つは速度が必要です。少なくとも現時点では、WCFとのやり取りはありません。 私は別のライブラリに興味がありますが、誰かが私の質問にも答えてくれることを期待しています。

5
オブジェクトをXML文字列に変換します
WebserviceTypeXSDファイルのツールxsd.exeから取得したという名前のクラスがあります。 ここで、WebServiceTypeオブジェクトのインスタンスを文字列に逆シリアル化します。これどうやってするの? MethodCheckTypeparamsはのようにオブジェクトが持つWebServiceType配列。 私の最初の試みは、それをシリアル化したようなものでした:aXmlSerializerとaStringWriterを使用しました(シリアル化中にはを使用しましたStringReader)。 これは、WebServiceTypeオブジェクトをシリアル化する方法です。 XmlSerializer serializer = new XmlSerializer(typeof(MethodCheckType)); MethodCheckType output = null; StringReader reader = null; // catch global exception, logg it and throw it try { reader = new StringReader(path); output = (MethodCheckType)serializer.Deserialize(reader); } catch (Exception) { throw; } finally { reader.Dispose(); } return output.WebService; 編集: 別の言葉で言うと、このMethodCheckTypeオブジェクトのインスタンスを取得している一方で、このオブジェクトをシリアル化したXMLドキュメントを取得しています。次に、このインスタンスを文字列形式のXMLドキュメントに変換します。この後、(XMLドキュメントの)両方の文字列が同じであるかどうかを証明する必要があります。XMLドキュメントをに読み込んでオブジェクトにStringReaderシリアル化する最初のメソッドの単体テストを行うため、これを行う必要がありMethodCheckTypeます。
88 c#  xml  serialization 

9
Json.NETコンバーターを使用してプロパティを逆シリアル化する
インターフェイスを返すプロパティを含むクラス定義があります。 public class Foo { public int Number { get; set; } public ISomething Thing { get; set; } } Json.NETを使用してFooクラスをシリアル化しようとすると、「タイプ 'ISomething'のインスタンスを作成できませんでした。ISomethingはインターフェイスまたは抽象クラスである可能性があります。」のようなエラーメッセージが表示されます。 Somethingデシリアライズ中に使用する具象クラスを指定できるJson.NET属性またはコンバーターはありますか?

10
VisualStudioデバッガーからオブジェクトをシリアル化する方法
クラッシュダンプのバグを調査しようとしています(コードを変更できません)。非常に複雑なオブジェクト(シリアル化された表現の数千行)があり、その状態に一貫性がありません。その状態を調査するために、VisualStudioデバッガービューは役に立ちません。ただし、オブジェクトにはデータコントラクトがあります。それをシリアル化してから、お気に入りのテキストエディタを使用してオブジェクト間を移動したいと思います。デバッガーから実行することは可能ですか?

4
Pythonのシリアル化-なぜpickleするのですか?
Pythonのpickle化は、オブジェクトプログラミングを尊重する方法でPythonオブジェクトを「保存」する方法であることを理解しました。これは、txtファイルやDBで記述された出力とは異なります。 次の点について、詳細や参考資料はありますか。 漬け物はどこに「保管」されますか? ピクルス化は、たとえばDBに格納するよりも、オブジェクト表現を保持するのはなぜですか? あるPythonシェルセッションから別のセッションにpickle化されたオブジェクトを取得できますか? シリアル化が役立つ重要な例はありますか? pickleを使用したシリアル化は、データの「圧縮」を意味しますか? 言い換えれば、私はピクルスに関するドキュメントを探しています-Python.docはピクルスを実装する方法を説明していますが、シリアル化の使用と必要性についての詳細には飛び込んでいないようです。

15
WebAPIで応答をシリアル化できませんでした
ASP.NET MVC Web APIで作業していましたが、次のエラーが発生します。 'ObjectContent`1'タイプは、コンテンツタイプ 'application / xmlの応答本文のシリアル化に失敗しました。charset = utf-8 '。 私のコントローラーは: public Employee GetEmployees() { Employee employees = db.Employees.First(); return employees; } なぜこのエラーが発生するのですか?

4
.NETWebAPIシリアル化k_BackingFieldNastiness
以下をシリアル化すると: [Serializable] public class Error { public string Status { get; set; } public string Message { get; set; } public string ErrorReferenceCode { get; set; } public List<FriendlyError> Errors { get; set; } } 私はこの嫌な混乱を得る: <ErrorRootOfstring xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Printmee.Api"> <_x003C_Errors_x003E_k__BackingField> An exception has occurred. Please contact printmee support </_x003C_Errors_x003E_k__BackingField> <_x003C_LookupCode_x003E_k__BackingField>988232ec-6bc9-48f3-8116-7ff7c71302dd</_x003C_LookupCode_x003E_k__BackingField> …

7
XMLシリアル化と継承されたタイプ
前の質問に続いて、オブジェクトモデルをXMLにシリアル化する作業を行っています。しかし、私は今問題に遭遇しました(クエルサプライズ!)。 私が抱えている問題は、抽象基本クラス型のコレクションがあり、具体的な派生型が入力されていることです。 関係するすべてのクラスにXML属性を追加するだけで十分であり、すべてが桃色になると思いました。悲しいことに、そうではありません! だから私はグーグルでいくつかの掘り下げをしました、そして今私はそれがうまくいかない理由を理解しました。その中で実際にあるが、シリアライズするためにいくつかの巧妙な反射をやってXMLから/に反対し、その抽象型に基づいているので、それがに話して何地獄を把握することはできません。結構です。XmlSerializer 私はCodeProjectでこのページに出くわしましたが、それは大いに役立つかもしれません(まだ完全に読んだり消費したりする)が、この問題をStackOverflowテーブルにも持ってきて、きちんとしたものがあるかどうかを確認したいと思いましたこれを可能な限り迅速/最軽量の方法で稼働させるためのハック/トリック。 私が付け加えなければならないことの一つは、私がルートを下りたくないということXmlIncludeです。単にそれとの結合が多すぎて、システムのこの領域は開発が進んでいるので、それは本当にメンテナンスの頭痛の種になるでしょう!

8
laravelシリアル化のためにルートを準備できません…。クロージャを使用
Laravel 5.2プロジェクトのキャッシュをクリアすると、次のエラーメッセージが表示されます。 [LogicException]シリアル化のためにルート[パネル]を準備できません。クロージャを使用します。 ルートと関係があると思います Route::get('/article/{slug}', 'Front@slug'); 私のコントローラーの特定のメソッドに関連付けられています: public function slug($slug) { $article = Article::where('slug',$slug)->first(); $id = $article ->id_article ; if ( ($article=== null) || (is_null($id)) ) return view('errors/Db'); else return view('detail')->with(array('article'=> $article, 'title'=>'My title - '.$article->title)); }` In short, from a master view I pass $slug, that is a shortlink …

1
DataContractSerializerとXmlSerializer:各シリアライザーの長所と短所
デスクトップアプリケーションは、を使用してオブジェクトをシリアル化しますXmlSerializer。DataContractSerializer代わりに活用するように提案されました。 どのシナリオで使用する必要がありますDataContractSerializerか? どうもありがとう コメント。 1.出力XMLファイルはローカルに保存されます。他のアプリケーションは、そのXMLファイルからオブジェクトを逆シリアル化しません。 2.私のアプリケーションは.NETFramework 3.5SP1で実行されます。

9
埋め込み配列を使用して、Railsの複数選択で最初の要素が常に空白になるのはなぜですか?
Rails3.2.0.rc2を使用しています。私が持ってModelいる私は、静的持って、Array私は、ユーザーがのサブセットを選択できるように、フォームをアップ提供していますArrayし、1つの列に格納されているデータベースにその選択を保存しますModel。ArrayRailsがユーザーの選択をYamlに正しく変換している(そしてその列を読み取るときに配列に戻る)データベース列でserializeを使用しました。複数選択フォーム入力を使用して選択を行っています。 私の問題は、現在の方法では、サーバーに送信されるときにユーザーのサブセット配列の最初の要素が常に空白になることを除いて、すべてが期待どおりに機能することです。 これは大したことではなく、事後にそれを切り取るコードを書くことはできますが、デフォルトのRailsの動作が意図的に行われるとは思えないため、何らかの構文エラーを起こしているように感じます。なんらかの理由なしにこの空白の要素を追加します。何かを見逃したか、ある種の設定を無効にするのを忘れたに違いありません。私が欠けているものを理解するのを手伝ってください(または、私がインターチューブで見つけたものよりも詳細にこれを説明しているいくつかの良いドキュメントを教えてください)。 MySQLデータベーステーブル 'モデル': subset_arrayTEXTフィールドであるという名前の列が含まれています クラスモデルには、次の設定が含まれています。 serialize :subset_array ALL_POSSIBLE_VALUES = [value1, value2, value3, ...] モデルを編集するためのフォームには、次の入力オプションが含まれています。 f.select :subset_array, Model::ALL_POSSIBLE_VALUES, {}, :multiple => true, :selected => @model.subset_array クライアントからサーバーへのPUTは次のようになります。 value1とvalue3のみが選択されていると仮定します "model" => { "subset_array" => ["", value1, value3] } データベースの更新は次のようになります。 UPDATE 'models' SET 'subset_array' = '--- \n- \"\"\n- value1\n- value3\n' ご覧のとおり、送信されてデータベースに設定されている配列には、この余分な空白の要素があります。どうすればそれを取り除くことができますか?f.select通話に欠けているパラメータはありますか? どうもありがとうございました:) …

10
JacksonObjectMapper-オブジェクトプロパティのシリアル化順序を指定します
リクエストが仲介者によって改ざんされていないことを確認できるように、ユーザーがリクエストと一緒に署名された検証トークンを送信する必要があるRESTfulWebサービスを実装しています。私の現在の実装は次のとおりです。 検証トークンは、文字列にシリアル化され、ハッシュおよび暗号化されたVerifDataオブジェクトです。 class VerifData { int prop1; int prop2; } 私のサービスでは、シリアル化するデータをVerifDataのインスタンスに配置し、Jackson ObjectMapperを使用してシリアル化し、検証トークンとともに検証エンジンに渡します。 VerfiData verifData = new VerifData(12345, 67890); ObjectMapper mapper = new ObjectMapper(); String verifCodeGenerated = mapper.writeValueAsString(verifData); ただし、アプリケーションコンテナが起動するたびに、ObjectMapperによって文字列にマップされるプロパティの順序が変わるようです。 例:一度は {"prop1":12345,"prop2":67890} そしてまた別の時は {"prop2":67890,"prop1":12345} したがって、クライアントがVerifDataインスタンスを最初の文字列としてシリアル化した場合、それが正しい場合でも、失敗する可能性は50%です。 これを回避する方法はありますか?ObjectMapperでマップするプロパティの順序を指定できますか(昇順など)?または、この検証手順を最適に実装する他の方法はありますか。クライアントとサーバーの両方の実装は私が開発しました。署名と検証にはJavaSecurityAPIを使用しています。

9
インターフェイスプロパティのXMLシリアル化
タイプIModelObject(インターフェイス)のプロパティを持つオブジェクトをXMLシリアル化したいと思います。 public class Example { public IModelObject Model { get; set; } } このクラスのオブジェクトをシリアル化しようとすると、次のエラーが表示 されます。「インターフェイスであるため、Example型のメンバーExample.Modelをシリアル化できません。」 問題は、インターフェイスをシリアル化できないことだと理解しています。ただし、具体的なModelオブジェクトタイプは実行時まで不明です。 IModelObjectインターフェイスを抽象型または具象型に置き換え、XMLIncludeで継承を使用することは可能ですが、見苦しい回避策のようです。 助言がありますか?
83 c#  .net  serialization 

4
C ++でオブジェクトをどのようにシリアル化しますか?
ソケット接続を介してシリアル化および送信する必要があるオブジェクトの小さな階層があります。オブジェクトをシリアル化してから、タイプに基づいて逆シリアル化する必要があります。これをC ++で行う簡単な方法はありますか(Javaの場合と同様)? C ++シリアル化のオンラインコードサンプルまたはチュートリアルはありますか? 編集:明確にするために、私はオブジェクトをバイトの配列に変換してからオブジェクトに戻す方法を探しています。ソケット送信も対応できます。

14
フェッチされていないレイジーオブジェクトでのJacksonシリアル化を回避する
Userオブジェクトを返す単純なコントローラーがあります。このユーザーには、休止状態のプロパティFetchType.LAZYを持つ属性座標があります。 このユーザーを取得しようとすると、ユーザーオブジェクトを取得するために常にすべての座標をロードする必要があります。そうしないと、Jacksonがユーザーをシリアル化しようとすると例外がスローされます。 com.fasterxml.jackson.databind.JsonMappingException:プロキシを初期化できませんでした-セッションがありません これは、ジャクソンがこのフェッチされていないオブジェクトをフェッチしようとしているためです。オブジェクトは次のとおりです。 public class User{ @OneToMany(fetch = FetchType.LAZY, mappedBy = "user") @JsonManagedReference("user-coordinate") private List<Coordinate> coordinates; } public class Coordinate { @ManyToOne @JoinColumn(name = "user_id", nullable = false) @JsonBackReference("user-coordinate") private User user; } そしてコントローラー: @RequestMapping(value = "/user/{username}", method=RequestMethod.GET) public @ResponseBody User getUser(@PathVariable String username) { User user = userService.getUser(username); …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.