JSON.jl icon indicating copy to clipboard operation
JSON.jl copied to clipboard

Packages that need changes for JSON 1.0

Open nhz2 opened this issue 4 months ago • 10 comments

Here are some registered packages that will need changes to be compatible with JSON 1.0 This is based on a search in JuliaHub, but I may be missing some packages.

Related to removing the show_json interface

https://github.com/JuliaComputing/TableView.jl/blob/a3a3172fed89260b779d79f22c901ed74d96b90d/src/TableView.jl#L293-L319 https://github.com/GenieFramework/Stipple.jl/blob/d147ddcc1ab7a1b190cba8b7007c3c0d26c110f5/ext/StippleJSONExt.jl#L13 https://github.com/spine-tools/SpineInterface.jl/blob/9bf05d62d636a76f9c21916772bc5d28e15ec460/src/api/db.jl#L732-L738 https://github.com/JuliaComputing/MultiDocumenter.jl/blob/e112da8b744f3393d037a7380e544797c2a41953/src/search/flexsearch.jl#L130-L155 https://github.com/randyzwitch/ECharts.jl/blob/a6dc9cbc9f3595a3e499aa3b539df2f4e599739b/src/ECharts.jl#L46-L50 https://github.com/Octogonapus/AWSCRT.jl/blob/f871c2b8256449069fedbbddc2219c9bbbe7effc/README.md?plain=1#L187-L199 https://github.com/JuliaRobotics/DistributedFactorGraphs.jl/blob/7823fe4b2e3223b008b68dfc1deb311a902e43f7/attic/SerializationOld.jl#L13-L15 https://github.com/JuliaGizmos/JSExpr.jl/blob/968e996a02cfa08bb4602086350c70a0e55b4465/src/jsstring.jl#L189-L191 https://github.com/JuliaLogging/LogRoller.jl/blob/b53582dad0a30523d3370f783874b0fda6fdf6c0/src/log_utils.jl#L5-L26 https://github.com/GiggleLiu/ProblemReductions.jl/blob/8b29f551b6aa1ec5ce674b53d785c19d02796ec8/src/models/fileio.jl#L42-L48 https://github.com/ModiaSim/Modia3D.jl/blob/22f3af52a4828d0340fc19049f0dc38268a6f142/src/Shapes/solid.jl#L138-L145 https://github.com/queryverse/Vega.jl/blob/7b6fcd87587d67104e88747155381865ab544db5/src/spec_utils.jl#L81-L85 https://github.com/JuliaGizmos/WebIO.jl/blob/6662f46fd7d06714705c5f70158837e77a725461/src/syntax.jl#L237-L248 https://github.com/JuliaPackaging/BinaryBuilder.jl/blob/d41ddc84157a8c4b490761b0fb5f66cf32746ce6/contrib/generate_instructions_list.jl#L5-L26

Related to removing the parse inttype keyword argument.

https://github.com/Zinoex/IntervalMDP.jl/blob/f3697ac3522bbc5a437cecea24e9db4d591a7470/src/Data/intervalmdp.jl#L80 https://github.com/stensmo/SFTPClient.jl/blob/7cd8d87a3b67cb38c9b354b190b91f145f475ee6/README.md?plain=1#L84 https://github.com/JuliaText/TextModels.jl/blob/66ec1fe47c23966fe0b3e1d0bfa207963963cdb8/src/sequence/ner.jl#L17

nhz2 avatar Aug 08 '25 21:08 nhz2

JuliaGeo./GeoJSON.jl will also have to be completely rewritten.

asinghvi17 avatar Oct 06 '25 20:10 asinghvi17

Why is that? From what I can tell, GeoJSON.jl doesn't depend on JSON.jl

nhz2 avatar Oct 08 '25 22:10 nhz2

It doesn't yet but it depends on JSON3.jl, which it should switch from to JSON.jl especially since that will allow completely lazy parsing

asinghvi17 avatar Oct 08 '25 22:10 asinghvi17

BenchmarkTools.jl? It was in my startup.jl which depends on JSON.jl.

kapple19 avatar Oct 11 '25 03:10 kapple19

I started to work on GenieFramework/Stipple

hhaensel avatar Oct 15 '25 14:10 hhaensel

https://github.com/JuliaPy/Conda.jl/pull/262 needs some love to support JSON v1 in jupyter notebooks

lgoettgens avatar Oct 17 '25 15:10 lgoettgens

JuliaPy/Conda.jl#262 needs some love to support JSON v1 in jupyter notebooks

I think Conda just needs a bump of the JSON compat. IJulia does, indeed, need a little love. I just got it working, however, I needed to manually install jupyter Conda.add("jupyter"). I have pushed a branch hh-json1 on [my fork of IJulia](https://github.com/hhaensel/IJulia.jl, which gives you a working Jupyter Notebook with JSON v1 if you dev Conda and bump the JSON compat to 1

hhaensel avatar Oct 17 '25 17:10 hhaensel

I am not sure whether that branch should be the final solution, as it parses into dicts instead of JSON.Objects, but it was a quick fix and I wanted to see whether it works. The final solution should rather be to make parts that store results of JSON.parse accept JSON.Objects.

UPDATE: Had a more detailed look at the code of IJulia and think that the solution of parsing into Dict{String, Any} is a reasonable approach, as all parsing results end up in Dicts anyhow.

hhaensel avatar Oct 17 '25 17:10 hhaensel

just filed a PR in IJulia https://github.com/JuliaLang/IJulia.jl/pull/1197 that works with JSON v1 as soon as Conda's json compat is bumped to include 1

hhaensel avatar Oct 17 '25 20:10 hhaensel

I would like to add JuliaComputing/OpenAPI.jl too. I tried to do the update, but I don't know the internals of that package, so I couldn't quickly figure out:

  • the way it dispatches on Dict{String,Any} (e.g. https://github.com/JuliaComputing/OpenAPI.jl/blob/0c95ebb8db20d95a8a2a067b3ed464719e96c7b6/src/json.jl#L61-L64)
  • how does it read streams/chunks and why does it work with JSON3 (tests fail around here: https://github.com/JuliaComputing/OpenAPI.jl/blob/0c95ebb8db20d95a8a2a067b3ed464719e96c7b6/test/chunkreader_tests.jl#L55)

cserteGT3 avatar Oct 28 '25 12:10 cserteGT3