カスタム書き込みロジックを使用せずに、カスタム System.Text.Json.JsonConverter でデフォルトのシリアル化動作を保持するにはどうすればよいですか?
JsonConverter の選択には、次のような異なる優先順位があります。
コンバーターの適用方法に応じて、デフォルトのシリアル化を実装するさまざまな方法があります。
JsonSerializer.Serialize(writer, person, options); を呼び出すと、デフォルトのシリアル化が生成されます。
コンバータ ファクトリを使用する例を次に示します:
<code class="language-csharp">public sealed class PersonConverter : DefaultConverterFactory<Person> { ... protected override T Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions modifiedOptions) => (T)JsonSerializer.Deserialize(ref reader, typeToConvert, modifiedOptions); protected override void Write(Utf8JsonWriter writer, T value, JsonSerializerOptions modifiedOptions) => JsonSerializer.Serialize(writer, value, modifiedOptions); } ... var person = new Person("John", "Doe"); var options = new JsonSerializerOptions { Converters = { new PersonConverter() } }; var json = JsonSerializer.Serialize(person, options);</code>
以上がカスタム JsonConverters でデフォルトの JSON シリアル化動作を保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。