1

私は JSON と .Net JavascriptSerializer をいじっています。これまでのところ、すべてが見栄えがよく、楽しいものです。私のコードは次のとおりです。

    JavaScriptSerializer serializer = new JavaScriptSerializer();                    
    myObject = serializer.Deserialize<MyObject>(myJsonString);

次に、デシリアライゼーションを使用して作成された後に MyObject 内にいくつかの値を設定するなど、いくつかの初期化を実行して、さらに一歩進めたいと思います。MyObject クラスにパラメータなしのコンストラクタを追加しpublic MyObject()て、そこに値を設定してみましたが、自動で呼び出されないようです。

逆シリアル化に初期化メソッド/コンストラクターを呼び出すにはどうすればよいですか? 私はJavascriptSerializerのみを使用したいことに注意してください(これは私が今学んでいることです).datacontractserializerや他のjsonライブラリまたは外部dllを使用したくない. 読んでくれてありがとう!

4

1 に答える 1

2

からJavaScriptSerializer.Deserialize<T>、コンストラクターがどのように呼び出されるかわかりません。

ただし、JavaScriptSerializer.RegisterConverters独自の初期化を行うことができるカスタムコンバーターを許可するメソッドがあります

備考

RegisterConverters メソッドを使用して、1 つ以上のカスタム コンバーターを JavaScriptSerializer インスタンスに登録できます。カスタム コンバーターが登録されている場合、JavaScriptSerializer はコンバーターを使用して、マネージド型をシリアル化し、JSON 文字列をマネージド型に逆シリアル化します。

そしてからJavaScriptConverter

備考

JavaScriptConverter クラスを使用すると、JavaScriptSerializer クラスでネイティブにサポートされていないマネージド型のシリアル化および逆シリアル化プロセスを実装できます。シリアライゼーションとデシリアライゼーションのプロセスをより詳細に制御する必要がある場合は、 JavaScriptConverter を使用することもできます。

他の唯一の方法は、何らかのinitialization()メソッドを手動で呼び出すことです。

于 2013-02-14T12:23:25.083 に答える