JSMN
Jsmn is a world fastest JSON parser/tokenizer. This is the official repo replacing the old one at Bitbucket (by zserge)
RapidJSON
A fast JSON parser/generator for C++ with both SAX/DOM style API (by Tencent)
Our great sponsors
JSMN | RapidJSON | |
---|---|---|
14 | 15 | |
3,547 | 13,842 | |
- | 0.8% | |
0.0 | 6.1 | |
about 1 month ago | 5 days ago | |
C | C++ | |
MIT License | GNU General Public License v3.0 or later |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.
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.
JSMN
Posts with mentions or reviews of JSMN.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-11-05.
-
Building a high performance JSON parser
Like how https://github.com/zserge/jsmn works. I thought it would be neat to have such as parser for https://github.com/vshymanskyy/muon
-
Flattening ASTs (and Other Compiler Data Structures)
One more JSON implementation using this approach is https://github.com/zserge/jsmn.
-
Show HN: WinGPT, AI Assistant for Windows 3.1
Yep! I'm using JSMN (https://github.com/zserge/jsmn), which is a streaming parser that visits each token sequentially, so there's only one copy of each JSON response in memory. I also avoid allocating new intermediate memory whenever possible; for example, to unescape backslashes in the JSON strings, I use a destructive loop that moves the non-backslash characters forward in memory, and truncates the string by moving the null terminator earlier in the string. Not something I'd imagine doing in most environments today, but as you said, it saves a bit of space at the expense of CPU time :)
void DestructivelyUnescapeStr(LPSTR lpInput) {
- A good C library to parse json data
-
Lightweight data serialization/deserialization format
After reviewing several options, I’ve settled on plain old JSON. For parsing, I use https://github.com/zserge/jsmn. For serialization I use https://github.com/rdpoor/jems (disclaimer: I wrote the latter, but others use it as well).
-
jemi: a compact JSON serializer for embedded systems
As mentioned here, it appears that tiny-json is a parser, not a serializer. If you're looking for parsers, I've been very happy with jsmn.
-
What is the proper way to store a RFC3339 date string?
Very small, 4-5 fields but I'm still going to write in binary because I'm trying to reduce dependencies and https://github.com/zserge/jsmn looks like good fit but jsmn only does parsing which I need for parsing some Oauth json data and config.json file. I will be able to dump the state struct in a state.bin file and read it later for comparing it with system time. Not having to write in text fits well for this particular use case. Benefits: Reduced dependencies and almost cost less decoding of the state struct(which the user will never see).
- Jsmn: A minimalistic JSON parser in C
- CJSON – Ultralightweight JSON parser in ANSI C
-
A tiny zero-allocation JSON serializer compatible with C89!
This is my very straight-forward implementation that came to be from the lack of JSON encoding in jsmn:
RapidJSON
Posts with mentions or reviews of RapidJSON.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-03-19.
-
Has anyone embedded a web-UI into a C++ project?
Here's what I did: - I bought a theme that I liked, and used mstch as template engine (matched the theme's template format) - Imported rapidjson for parsing JSON, and used mstch for generating JSON (the JSON I generate is simple enough that I can do this) - Wrote an HTTP handler class for each page that handles the GET and POST requests, generating HTML or JSON depending on the request
-
Is there a good cross-platform (Windows / Linux) C or C++ library for file I/O?
And documentation in most cases is more user-friendly if you will use something like MkDocs(based on Markdown), example http://rapidjson.org/
- What is the best way to store multiple objects of a class as data in C++?
-
How to deserialise json into a C++ struct?
Use RapidJSON https://rapidjson.org/
-
DAW JSON Link v3, a JSON serialization/deserialization library, is released
It seems not super widely used compared to other famous libraries like RapidJSON, nlohmann-json, or simdjson. But it seems the author is very active in developing this project which can mitigate this "lack of community" issue.
-
Is cpp a good language for reading and writing large quantities of JSON files as quickly as possible?
have a look at rapidjson for a a nice simple json framework https://rapidjson.org/ I use it and it's quite fast and as good as anything I used in python.
-
What JSON library do you suggest?
So I just cloned https://github.com/Tencent/rapidjson to see what is the current status. At compile time they check if the C++ compiler supports the "noexcept" keyword, and if so they define RAPIDJSON_NOEXCEPT to be "noexcept". Throughout the implementation, RAPIDJSON_NOEXCEPT is added to quite a few function declarations (about a hundred of them).
- Storing data to be used in simulations.
-
How and where I can learn about Web sockets, APIs, Wrappers to connect with my C++ code?
RapidJSON is also excellent, like fantastic when performance matters. Not sure there's a much faster JSON implementation anywhere, and I've written my own SAX-style parser as a fun, hobby project for C++.
- Can anyone point me to an open-source project that correctly uses allocators?
What are some alternatives?
When comparing JSMN and RapidJSON you can also consider the following projects:
cJSON - Ultralightweight JSON parser in ANSI C
JsonCpp - A C++ library for interacting with JSON.
json-c - https://github.com/json-c/json-c is the official code repository for json-c. See the wiki for release tarballs for download. API docs at http://json-c.github.io/json-c/
json - JSON for Modern C++
Jansson - C library for encoding, decoding and manipulating JSON data
simdjson - Parsing gigabytes of JSON per second : used by Facebook/Meta Velox, the Node.js runtime, ClickHouse, WatermelonDB, Apache Doris, Milvus, StarRocks
ArduinoJson - 📟 JSON library for Arduino and embedded C++. Simple and efficient.
Boost.PropertyTree - Boost.org property_tree module
yyjson - The fastest JSON library in C