Task #2383
Add JSON interface to write and read files
Description
This issue is meant to keep track of the effort to add a new file reading and writing interface to GROMACS based on JSON. The point would be to have the common data structures in plain text files in JSON format for user facing files that are used as input for or are direct output from the program.
Related issues
History
#1 Updated by Paul Bauer about 3 years ago
First general question is which JSON library should be used (from the list here: https://www.json.org/). There are several different ones we might consider, but I don't know if people have been discussing this before.
#2 Updated by Aleksei Iupinov about 3 years ago
- Related to Feature #1842: Replace XML with JSON added
#3 Updated by Paul Bauer about 3 years ago
After discussing things with Mark in some detail, we came up with some preliminary work flow on what might make sense to do as a start.
The idea is to first add the header for the JSON library used, together with the necessary license information and some mechanism to keep it up to date.
Following work will focus on providing a mechanism to convert the mdp file information internally from the Key-Value-Tree to JSON (and back), to allow writing of the information to a JSON file, and to have the ability to convert the legacy mdp format to JSON, with the internal Key-Value-Tree as the intermediate.
The JSON input files could then be both verified to be valid input files (in terms of valid JSON), and be further validated internally to make sure that provided fields can be used by the respective modules.
Another part should be a survey of user opinions on any preliminary change, to see what the general opinion will be for having this change of file formats.
If people think I forgot to mention something, please be free to add additional parts that should be considered as part of this task.