Bond
Json.NET
Bond | Json.NET | |
---|---|---|
3 | 56 | |
2,606 | 10,718 | |
0.5% | - | |
4.0 | 4.1 | |
3 months ago | about 1 month 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.
Bond
- LinkedIn Adopts Protocol Buffers and Reduces Latency Up to 60%
-
11 Companies That Use Haskell in Production
Microsoft uses Haskell in Bond, a cross-platform framework for working with schematized data.
Json.NET
-
Why, after 6 years, I'm over GraphQL
In my opinion, the single biggest issue with Newtonsoft.Json is https://github.com/JamesNK/Newtonsoft.Json/issues/862.
Sure, you can disable it, but the fact that it is opt-out to begin with - i.e. that by default the parser will try to creatively interpret any string it sees in JSON input and convert in a locale-specific manner that also quietly loses data - is, frankly, insane through and through. I've personally run into this issue many times in existing code - it usually happens when people first start using the library and just never run into any inputs that would trigger this behavior while testing. Then once that code is shipped, someone somewhere just happens to have the data that triggers it.
And if you look at the comments to that issue, there are numerous mentions from other GitHub repos due to bugs it caused for them, including some Microsoft projects.
The cherry on that cake was author's response indicating that he doesn't even understand why this design is problematic in the first place: "I like what it does, I have no plans to change it, and I would do it again if given the chance." I wouldn't trust any parser written with this kind of attitude.
-
20 Top C# Frameworks and Libraries on GitHub for Building Powerful Applications
9. Newtonsoft.Json
-
GitHub Actions e a Magia dos Triggers: Automatizando Tarefas com C#
Estamos usando o conversor do Newtonsoft
- stopDoingJson
-
Should you use Newtonsoft.Json or System.Text.Json in 2023?
This bug and many others related to time: https://github.com/JamesNK/Newtonsoft.Json/issues/862 And they will never get fixes, because the project is kind of dead. Edit: and actually, the creator claim to have made it like this on purpose, so I don't trust it anymore.
-
Removing default values while serializing using Newtonsoft.Json
There's a related discussion on the GitHub repo:
-
React developer to NET
Nuget is where you'll get 3rd party libraries (such as Newtonsoft.Json for JSON processing)
- what library do i need to include for this json deserializer? (or how do i find what libs i need to include in general?)
- How do you normally store large raw json string into a variable in your code in C#?
-
Best practice for organizing multiple classes (new to programming)
Common convention (with rare exceptions) is to name your project the same as your assembly name and default namespace. For example, Newtonsoft.Json.csproj makes an assembly called Newtonsoft.Json.dll with the default namespace of Newtonsoft.Json. Inside that project directory (which usually also has the same name), subdirectories would match namespaces nested inside the default, like in that example there is a folder named Serialization which contains classes that are all in the namespace Newtonsoft.Json.Serialization. Classes in this nested namespace can automatically access classes defined in parent namespaces without extra using statements, like how JsonProperty.cs can reference JsonConverter from the Newtonsoft.Json namespace, but it needs a using statement at the top of the file in order to access classes from the sibling namespace Newtonsoft.Json.Utilities
What are some alternatives?
Protobuf - Protocol Buffers - Google's data interchange format
Utf8Json - Definitely Fastest and Zero Allocation JSON Serializer for C#(NET, .NET Core, Unity, Xamarin).
ProtoBuf - C# code generator for reading and writing the protocol buffers format
MessagePack for C# (.NET, .NET Core, Unity, Xamarin) - Extremely Fast MessagePack Serializer for C#(.NET, .NET Core, Unity, Xamarin). / msgpack.org[C#]
FlatBuffers - FlatBuffers: Memory Efficient Serialization Library
Protobuf.NET - Protocol Buffers library for idiomatic .NET
MessagePack - MessagePack implementation for C and C++ / msgpack.org[C/C++]
LitJSON - JSON library for the .Net framework
Jil - Fast .NET JSON (De)Serializer, Built On Sigil
Msgpack-Cli - MessagePack implementation for Common Language Infrastructure / msgpack.org[C#]