Skip to content

Commit 79c133a

Browse files
authored
Merge pull request #147 from tp2750/json_146
Deprecate JSON3. Fixes #146
2 parents 3dd093c + f26a811 commit 79c133a

1 file changed

Lines changed: 25 additions & 13 deletions

File tree

docs/comparisons/dataio/fileio.md

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -172,38 +172,50 @@ XLSX.jl is an excellent package. Therefore, **XLSX.jl is generally recommended.
172172

173173
### JSON
174174
**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.
178177
* Use BSON.jl for [Binary JSON](https://bsonspec.org/).
179178
* Use JSONRPC.jl for [JSON-RPC 2.0](https://www.jsonrpc.org/specification).
180179

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.
184-
185180
{{star_history JSON JSON2 JSON3 JSONBase LazyJSON BSON LightBSON JSONRPC}}
186181

187182
#### JSON.jl
188183
{{badge JSON}}
189184

185+
> 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+
190195
#### JSON2.jl
191196
{{badge JSON2}}
192197

193198
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.
195205

196206
#### JSON3.jl
197207
{{badge JSON3}}
198208

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.
200211

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.
202213

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.
205218
206-
[quinnj](https://github.com/quinnj) (a founder of JSON3.jl) also provides JSONBase.jl, but its is not registered yet.
207219

208220
#### LazyJSON.jl
209221
{{badge LazyJSON}}

0 commit comments

Comments
 (0)