json.netシリアル化オブジェクトを使用する場合、奇妙な問題が発生する可能性があります。オブジェクトはデュアルシリアル化です。これにより、JSONデータが応答の二重引用符に包まれ、埋め込まれた引用も正しいです。
根本原因
根本原因はシリアル化方法です。例のようにを使用すると、オブジェクトを2回シリアル化します。これは、最初に文字列にシリアル化し、APIコントローラーがJavaScript文字列単語にさらにシリアル化するためです。
solution JsonConvert.SerializeObject(instance)
代替方法
または、カスタムコンバーターをデフォルトに直接追加することを選択できます
:<code class="language-csharp">public IEnumerable<foobar> GetFoobars() { var foobars = ...; return foobars; }</code>
その他のヒント
HttpConfiguration
カスタムコンバーターが正しく実装されていることを確認してください。
<code class="language-csharp">config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new FooConverter()); config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new BarConverter());</code>
「JSONおよびXML Serialization in Asp.Net Web API」を参照して、より多くのガイダンスを取得してください。
以上がjson.netが私のオブジェクトをダブルシリアル化するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。