Corvus.Text.Json - Enhancing JSON Data Handling in .NET

In this technical talk, Matthew Adams explores Corvus.Text.Json, an experimental fork of System.Text.Json that introduces powerful new capabilities for working with JSON documents in .NET.
This isn't just an incremental update to Corvus.JsonSchema - it's a fundamentally different approach that combines the best of immutable and mutable JSON handling.
Key Topics Covered
π§ Core Features
- Dual Model Support: Both immutable (for thread-safe operations) and mutable (for easier manipulation) JSON document handling
- Generic Element Types: Support for strongly-typed, code-generated JSON elements as first-class citizens
- JSON Schema Integration: Built-in schema matching and validation capabilities
- Performance Optimizations: Property maps for efficient lookups and zero-allocation operations
π‘ Technical Highlights
- How the genericized document system works over custom element types
- The innovative workspace and builder pattern for safe document mutation
- Performance improvements through UTF-8 backing storage and optimized property lookups
- Deep equality comparisons and efficient document manipulation
π Benefits
- Simplified API compared to existing Corvus.JsonSchema implementations
- Better performance than System.Text.Json's node-based approach
- Seamless integration between mutable and immutable representations
- Thread-safe document sharing with copy-on-write semantics
Who Should Watch
This talk is ideal for:
- .NET developers working with JSON processing
- Engineers interested in high-performance JSON manipulation
- Anyone using or considering Corvus.JsonSchema
- Developers looking for alternatives to System.Text.Json limitations
Chapters
- 00:00 - Introduction to Corvus Text JSON
- 00:54 - Immutable Model Overview
- 02:16 - Mutable Model Request
- 03:35 - Experiment with System.Text.Json
- 09:07 - Schema Matching and Validation
- 11:59 - Deep Equality and Property Map
- 17:21 - Mutability and Document Builders
- 26:36 - Creating and Manipulating JSON Documents
- 38:51 - Handling Mutable and Immutable Elements
- 44:37 - Summary and Conclusion
Published on:
Learn more