Project

General

Profile

Task #2383

Add JSON interface to write and read files

Added by Paul Bauer 7 months ago. Updated 7 months ago.

Status:
New
Priority:
Normal
Assignee:
Category:
-
Target version:
Difficulty:
uncategorized
Close

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

Related to GROMACS - Feature #1842: Replace XML with JSONNew

History

#1 Updated by Paul Bauer 7 months 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 7 months ago

#3 Updated by Paul Bauer 7 months 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.

Also available in: Atom PDF