You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/comparisons/dataio/fileio.md
+25-13Lines changed: 25 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -172,38 +172,50 @@ XLSX.jl is an excellent package. Therefore, **XLSX.jl is generally recommended.
172
172
173
173
### JSON
174
174
**Overview:**
175
-
* Use JSON3.jl or JSON.jl for most cases.
176
-
* JSON3.jl has faster implementation.
177
-
* JSON.jl has long history. If you need to load JSON on old Julia versions (e.g. v1.0), JSON.jl will be suitable.
175
+
* Use [JSON.jl](https://github.com/JuliaIO/JSON.jl) for most cases.
176
+
* JSON.jl is a pure Julia JSON parser with a long history. If you need to load JSON on old Julia versions (e.g. v1.0), JSON.jl will also be suitable.
178
177
* Use BSON.jl for [Binary JSON](https://bsonspec.org/).
179
178
* Use JSONRPC.jl for [JSON-RPC 2.0](https://www.jsonrpc.org/specification).
180
179
181
-
A quote from the later linked release-announcement for JSON3.jl helps us understand why there are so many packages:
182
-
> Let’s cut right to the chase and answer the elephant questions in the proverbial discourse room: why do we need another JSON package in Julia? what does it offer distinct from what JSON.jl, JSON2.jl, or LazyJSON.jl offer? why spend time and effort developing something that’s “already solved”?
183
-
> JSON3.jl was born from the spark of three separate ideas, and a vision that they could come together to make the best, most performant, simple, yet powerful JSON integration for Julia possible. It also exists as a way to “prove out” these ideas before trying to potentially upstream improvements into a more canonically named package like JSON.jl. I fully believe the package is ready for full-time use and reliance, but similar to JSON2.jl, it exists as a way to try out a different JSON integration API to potentially make things better, faster, easier.
> A Julia package for reading and writing JSON data.
186
+
187
+
The [documentation](https://juliaio.github.io/JSON.jl/stable) includes extensive
188
+
guides and examples. It also has [advice for migrating to JSON.jl v1.0 from
189
+
JSON.jl v0.21 or JSON3.jl](https://juliaio.github.io/JSON.jl/stable/migrate/).
190
+
191
+
It also includes a `vendor/` directory containing a simplified,
192
+
no-dependency JSON parser (`JSONX`) that can be vendored (copied) into other
193
+
projects. See the [vendor README](https://github.com/JuliaIO/JSON.jl/blob/master/vendor/README.md) for details.
194
+
190
195
#### JSON2.jl
191
196
{{badge JSON2}}
192
197
193
198
This package is not maintained.
194
-
Use JSON3.jl instead.
199
+
Use JSON.jl instead.
200
+
201
+
#### JSONBase.jl
202
+
{{badge JSONBase}}
203
+
204
+
[quinnj](https://github.com/quinnj) (a founder of JSON3.jl) also provides JSONBase.jl, but its is not registered yet.
195
205
196
206
#### JSON3.jl
197
207
{{badge JSON3}}
198
208
199
-
From its README:
209
+
[JSON3.jl](https://github.com/quinnj/JSON3.jl/tree/main) is deprecated after the release of JSON v1 in October 2025.
210
+
It used to be the go-to package for JSON parsing in Julia.
200
211
201
-
>Yet another JSON package for Julia; this one is for speed and slick struct mapping
212
+
If you rely on the "automatically generate Julia struct definitions" feature from JSON3.jl, you may need to keep using JSON3.jl for now. See the [migration guide](https://juliaio.github.io/JSON.jl/stable/migrate/#Features-unique-to-each-library) for details.
202
213
203
-
#### JSONBase.jl
204
-
{{badge JSONBase}}
214
+
A quote from the [release-announcement for JSON3.jl](https://discourse.julialang.org/t/ann-json3-jl-yet-another-json-package-for-julia/25625) describes the status of JSON parsing in 2019:
215
+
216
+
> Let’s cut right to the chase and answer the elephant questions in the proverbial discourse room: why do we need another JSON package in Julia? what does it offer distinct from what JSON.jl, JSON2.jl, or LazyJSON.jl offer? why spend time and effort developing something that’s “already solved”?
217
+
> JSON3.jl was born from the spark of three separate ideas, and a vision that they could come together to make the best, most performant, simple, yet powerful JSON integration for Julia possible. It also exists as a way to “prove out” these ideas before trying to potentially upstream improvements into a more canonically named package like JSON.jl. I fully believe the package is ready for full-time use and reliance, but similar to JSON2.jl, it exists as a way to try out a different JSON integration API to potentially make things better, faster, easier.
205
218
206
-
[quinnj](https://github.com/quinnj) (a founder of JSON3.jl) also provides JSONBase.jl, but its is not registered yet.
0 commit comments