File Exchange

image thumbnail


version (5.63 KB) by Oliver Woodford
Mex wrapper to C++ class for fast reading and writing of JSON files


Updated 13 Apr 2017

View Version History

View License

These function wrap Niels Lohmann's JSON for Modern C++ class into mex wrappers, for fast reading of JSON files into MATLAB variables, and writing MATLAB variables into JSON files.
JSON for Modern C++ must be downloaded separately from:

Mex these functions by calling:
mex json_read.cpp
mex json_write.cpp
Note that your C++ compiler must support C++11.

Example usage: var = json_read(filename)
filename - String of filename (if in current directory) or full or relative path to the JSON file to be read in.
var - MATLAB interpretation of the JSON data.

Cite As

Oliver Woodford (2021). C++ JSON IO (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (7)

Zoltán Csáti

json_write cannot be compiled as is. Include the "iomanip" and the "sstream" header files to compile it successfully.

Jordy Sanchez

Hi there, I cannot compile your code. Could you provide a pre-build version?

Wyfi Mcfly

Craig Cole

Very happy, was able to use this with coder. Must indicate not to compile the mex code, and then predefine the structure expected (and turn off warning that it's going to be overwritten)

Assuming my_settings.json is:

{"x": 15}

In Matlab:

result.x = 0; %#ok<STRNU>
result = json_read('my_settings.json');

Oliver Woodford

I suspect faster performance still can be achieved using the SAX API of the header only RapidJSON C++ library.

Oliver Woodford

Oleg: On the single 8MB file I have just tested it on, calling matlab.internal.webservices.fromJSON(fileread('myfile.json')) in R2016a is over 10 times slower than calling json_read (using timeit for the timing). This is no guarantee of performance on other files, of course.

Oleg Komarov

How does it compare to the now (since R2016a) mexed version of matlab.internal.webservices.fromJSON()?

MATLAB Release Compatibility
Created with R2016a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!