How to save Business Process Diagrams in JSON format?

Is it possible for us to store the Business Process Diagrams in a custom format (JSON) instead of XML(BPMN). If yes, how do we proceed?

Can we add a custom Moddle based module and register it in bpmn-io so as to save the documents in a custom format (JSON) as opposed to XML (BPMN)?


It is possible but not on our current roadmap.

Have a look at moddle-xml. You would need to implement something similar for JSON. Feel free to ping me, if you want to work on this or got some results. Would be a nice addition to our project.

Thanks for your prompt response, Nico. Will look at moddle-xml and start working towards it. Would love to contribute if you agree that it would be a good addition to the project.

We just started looking at the source code last evening and I should say you guys did a great job thus far. One area of improvement could be with the documentation. And yes, we would like to contribute our part in that area as well if needed :blush:

Let me know if there are any specific guidelines you follow and if there is any other documentation. You can email me personally @ if needed.

Thanks again

1 Like

Hi guys… Have you forked some branch and started this work. I would like to join and contribute too as I would also like JSON representation of the BPMN model.

I just don’t want to save it but make the viewer as well as modeler work with JSON (with the limitation of data format of json compared to the documents format XML)

Hi guys! I am also interested in a json serialization feature - does there already exist a fork to contribute to?

As an interim solution, could the npm package xml2json work?

Hi Guys,

Let me begin with some kudos to the bpmn-io team. Its a great tool.

Is there any work done to get the models to translate to JSON instead of XML or from XML to JSON? I am working on a project and needed this functionality or some help to add this myself.


Hi. Has someone started working on this? I’d like to contribute as well. Let me know. Thanks!

Thanks for insights guys… it works pretty good with x2js.

Check it out in the following demo:

Thanks @mariohmol for sharing your solution. I’ve marked this issue as solved and closed this thread.

If anyone got new questions on the topic: Please create a new topic linking to this one.