JsonSubTypes
Utf8Json
JsonSubTypes | Utf8Json | |
---|---|---|
4 | 4 | |
391 | 2,248 | |
- | - | |
3.8 | 0.0 | |
about 1 month ago | almost 2 years ago | |
C# | C# | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
JsonSubTypes
- .Net 6 - Rest Api is deserializing property of "object" type to JsonElement type (System.Text.Json)
-
An API receives different message types
If messages are arriving as Json you can use JsonSubTypes to deserialize to different DTOs based on the UUIDs (https://github.com/manuc66/JsonSubTypes) and then use the visitor pattern to dispatch the DTOs to the correct method.
-
What is your preferred way of creating application specific files for a local application?
Personally I've had good success with JsonSubTypes for deserializing discriminated unions from JSON. It'll serialize stuff into the right type, and then you just need a switch statement to typecast it afterwards.
-
How to create a data-driven software product that indicates pre-coded functionality?
There is a small use case that I consider valid for this. It would be for determining a set of pre-defined behaviors to make available to definitions of entities in a game. And the json data would not be coming from external sources, it would be tightly controlled by me as the developer. The response you made to the other comment on my post shared a link that said the practice shouldn't be done with untrusted data, and there would be no untrusted data since there'd be no external data. The article also mentions to restrict the types that can be deserialized, and that is definitely possible. The architecture pattern for this is ECS (Entity Component System) and the data-drive portion might have been a mis-naming of my post, it's more of a lot of the design of entities and components is stored in data files, and there are a few cases where I will want to associate certain functionality in the code with these data entity definitions. No operating system level functionality would be exposed. I've even been referred to a library available via nuget that will allow for what I'm attempting to do: https://github.com/manuc66/JsonSubTypes
Utf8Json
-
Utf8Json VS Utf8JsonAsyncStreamReader - a user suggested alternative
2 projects | 10 May 2023
-
Branchless Exercise
While I posted a solution that would do this, I'd call this premature optimization. The only time I'd even consider doing this is in a hot path. Here's a good reason to focus on branchless programming: https://github.com/neuecc/Utf8Json.
-
Tried system.text.json instead of Newtonsoft.json for a personal project, resulted in a 10x throughput in improvement
Now try Utf8Json.
-
Runtime communication with C# applicaiton
If my game state was smaller I would go for https://github.com/neuecc/Utf8Json and serde_json combination. Would save me some time with rmp_serde customization.
What are some alternatives?
Json.NET - Json.NET is a popular high-performance JSON framework for .NET
MessagePack for C# (.NET, .NET Core, Unity, Xamarin) - Extremely Fast MessagePack Serializer for C#(.NET, .NET Core, Unity, Xamarin). / msgpack.org[C#]
Jil - Fast .NET JSON (De)Serializer, Built On Sigil
JsonKnownTypes - Simple way to serialize and deserialize polymorphic types for Json.NET
Protobuf.NET - Protocol Buffers library for idiomatic .NET
Wire - Binary serializer for POCO objects
LitJSON - JSON library for the .Net framework
Protobuf - Protocol Buffers - Google's data interchange format
ServiceStack.Text - .NET's fastest JSON, JSV and CSV Text Serializers
Bois - Salar.Bois is a compact, fast and powerful binary serializer for .NET Framework. With Bois you can serialize your existing objects with almost no change.
ProtoBuf - C# code generator for reading and writing the protocol buffers format