From 6e27e5fe2cc55d0060bbc5e624954070b7577451 Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 27 Oct 2022 15:30:26 +0800 Subject: [PATCH 1/2] ABP 7.0 JSON migration guide. Resolve #14447 --- docs/en/Migration-Guides/Abp-7_0.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 docs/en/Migration-Guides/Abp-7_0.md diff --git a/docs/en/Migration-Guides/Abp-7_0.md b/docs/en/Migration-Guides/Abp-7_0.md new file mode 100644 index 00000000000..d94ce302db6 --- /dev/null +++ b/docs/en/Migration-Guides/Abp-7_0.md @@ -0,0 +1,24 @@ +# ABP Version 7.0 Migration Guide + +This document is a guide for upgrading ABP v6.0 solutions to ABP v7.0. There is a change in this version that may affect your applications, please read it carefully and apply the necessary changes to your application. + +## Hybrid JSON was removed. + +Since [System.Text.Json](https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/overview) library supports more custom features in NET 7, ABP no longer need the hybrid Json feature. + +### Previous Behavior + +There is a `Volo.Abp.Json` package which contains the `AbpJsonModule` module. +`Serialization/deserialization` features of [System.Text.Json](https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/overview) and [Nettonsoft](https://www.newtonsoft.com/json/help/html/SerializingJSON.htm) are implemented in this module. + +We use [System.Text.Json](https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/overview) first, More custom cases can be handled with [Nettonsoft](https://www.newtonsoft.com/json/help/html/SerializingJSON.htm) by configuring `UnsupportedTypes` of `AbpSystemTextJsonSerializerOptions`. + +### New Behavior + +We created `Volo.Abp.Json.SystemTextJson` and `Volo.Abp.Json.Newtonsoft` as separate packages, which means you can only use one of them in your project. The default is to use `SystemTextJson`. If you want `Newtonsoft`, please also use `Volo.Abp.AspNetCore.Mvc.NewtonsoftJson` in your web project. + +* Volo.Abp.Json.Abstractions +* Volo.Abp.Json.Newtonsoft +* Volo.Abp.Json.SystemTextJson +* Volo.Abp.Json (Depends on `Volo.Abp.Json.SystemTextJson` by default to prevent breaking) +* Volo.Abp.AspNetCore.Mvc.NewtonsoftJson From e75677e5369016aa3204ce11e8c55bb40e20a6cd Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 27 Oct 2022 15:31:19 +0800 Subject: [PATCH 2/2] Update Abp-7_0.md --- docs/en/Migration-Guides/Abp-7_0.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/en/Migration-Guides/Abp-7_0.md b/docs/en/Migration-Guides/Abp-7_0.md index d94ce302db6..b4c4d14b02d 100644 --- a/docs/en/Migration-Guides/Abp-7_0.md +++ b/docs/en/Migration-Guides/Abp-7_0.md @@ -22,3 +22,15 @@ We created `Volo.Abp.Json.SystemTextJson` and `Volo.Abp.Json.Newtonsoft` as sepa * Volo.Abp.Json.SystemTextJson * Volo.Abp.Json (Depends on `Volo.Abp.Json.SystemTextJson` by default to prevent breaking) * Volo.Abp.AspNetCore.Mvc.NewtonsoftJson + +The `AbpJsonOptions` now has only two properties, which are + +* `InputDateTimeFormats(List)`: Formats of input JSON date, Empty string means default format. You can provide multiple formats to parse the date. +* `OutputDateTimeFormat(string)`: Format of output json date, Null or empty string means default format. + +Please remove all `UnsupportedTypes` add custom `Modifiers` to control serialization/deserialization behavior. + +Check the docs to see the more info: https://github.com/abpframework/abp/blob/dev/docs/en/JSON.md#configuration + +Check the docs to see how to customize a JSON contract: https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/custom-contracts +