You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace JSON.NET with System.Text.Json across the codebase
Remove all Newtonsoft.Json serialization from the application layer, replacing
it with System.Text.Json (STJ). NEST still brings in Newtonsoft transitively,
but all application-level serialization now uses STJ exclusively.
Key changes:
- Add ElasticSystemTextJsonSerializer as custom IElasticsearchSerializer for NEST
- Add EmptyCollectionModifier to omit empty collections during serialization
- Add ObjectToInferredTypesConverter to handle JObject/JToken from NEST reads
- Add JsonNodeExtensions as STJ equivalents of JObject helpers for event upgraders
- Add IJsonOnDeserialized to Event model to merge [JsonExtensionData] into Data dict
- Add [JsonPropertyName] attributes to V1 webhook models for PascalCase compat
- Migrate all event upgraders from JObject to JsonObject (System.Text.Json.Nodes)
- Migrate all plugins from ISerializer/JsonSerializerOptions DI injection
- Use case-insensitive deserialization for DataDictionary.GetValue<T>() from JsonElement
- Use semantic comparison (JsonNode.DeepEquals) in tests for fixture validation
- Remove DataObjectConverter, ElasticJsonNetSerializer, and related Newtonsoft classes
- Remove Foundatio.JsonNet, NEST.JsonNetSerializer, FluentRest.NewtonsoftJson packages
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy file name to clipboardExpand all lines: AGENTS.md
+23Lines changed: 23 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -53,3 +53,26 @@ Load from `.github/skills/<name>/SKILL.md` when working in that domain:
53
53
- Use `npm ci` (not `npm install`)
54
54
- Never commit secrets — use environment variables
55
55
- NuGet feeds are in `NuGet.Config` — don't add sources
56
+
57
+
## Serialization Architecture
58
+
59
+
The project uses **System.Text.Json (STJ)** exclusively. NEST still brings in Newtonsoft.Json transitively, but all application-level serialization uses STJ:
0 commit comments