Skip to content

Extension for Utf8Json library. Enum resolver with case insensitive.

License

Notifications You must be signed in to change notification settings

ddiyteam/Utf8Json.Extensions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Utf8Json.Extension

This extension for Utf8Json library. Utf8Json is fast serialization library with good performance but without some functions (for example case insensitive enums).

EnumCaseIgnore resolver

EnumCaseIgnore resolver is slightly modified and upgraded standard Utf8Json EnumResolver with the the closest to original perfomance (see benchmarks). It uses same hash function to quickly compare bytes (see FarmHash.cs file, copied from original repository, because it's internal there). Can serialize enums values with origin, camelcase, snakecase options. Can deserialize case insensetive enums values.

Benchmarks

EnumCaseIgnore Serialization benckmark

EnumCaseIgnore Deserialization benchmark

How to use

  • Install NuGet package
Install-Package Utf8Json.Extensions
  • Create Utf8Json CompositeResolver with EnumCaseIgnoreResolver (override default EnumResolver)
var obj = new SimpleObject() { Id = Guid.NewGuid(), Name = "TestObject" };
var resolver = CompositeResolver.Create(EnumCaseIgnoreResolver.Default, tandardResolver.Default);
var result = JsonSerializer.ToJsonString(obj, resolver);

License

MIT

About

Extension for Utf8Json library. Enum resolver with case insensitive.

Resources

License

Stars

Watchers

Forks

Languages