File Exchange

image thumbnail

Highly portable JSON-input parser

version 1.1 (3.21 KB) by

For any version of Matlab that may still be in use by the fileexchange community.

3 Ratings



View License

The JSON quickly gains popularity for a good reason. To paraphrase Christophe Delord (
JSON is born from a simple statement:
A simple human-like meta-language will quickly
justify its use in such cases as data exchange over the web (e.g. Google translate), configuration files, etc.


for an example of AUTOMATIC, PORTABLE & REUSABLE creation of GUI sets for Matlab.
(Note: p_json.m is at the core of this example too)

Hence it is worth the while to provide this novel facility to the widest possible audience of Matlab users.

Based on work from:
& ::

F.Glineur 23393-another-json-parser: Faster, Clearer & More robust than #20565
J.Feenstra 20565-json-parser

This submission also provides a very simple (yet meaningful) use example (see also the screenshot).

Your test script (called a0t on the screenshot) may look like:

% ---------------------------------------------------------

fName = 'test02.jon';

fid = fopen(fName,'rt'); inString = fscanf(fid,'%c'); fclose(fid);

data = p_json(inString)

% ---------------------------------------------------------

and hence

inString == verbatim the 'test02.jon' TEXT input file,

provided in the .zip (see links below for more detail and more definitions):

% =========================================================
inString =

"name": {"type":"string"},
"age" : {"type":"integer",
"type" : "object"
"name" : "John Doe",
"age" : 30

% =========================================================

*** See also:

Given the topical nature of the JSO notation we invite the user to take a look at places like:

Comments and Ratings (4)

Ilya Belevich

Qianqian Fang

FYI, an optimized JSON parser, JSONlab, based on this work is available at

It is 10x to 100x faster. A JSON encoder is also provided in JSONlab.

Tanyer Alan

Tanyer Alan (view profile)


Dustin (view profile)

I kinda wish there were a more straight-forward way of accessing structs that live inside an array. For example, in a JSON string that has a series of unkeyed objects living in an array (i.e., "arrayName": [ {"color": "red"}, {"color": "green"}, {"color": "blue"} ]), accessing those objects is odd. Instead of using arrayName(i).color you must use arrayName{1,i}.color. Not a huge deal, just different than what I was expecting.

Other than that, it is very particular about properly-formatted JSON string inputs, and that's a good thing. Nice job.



Corrected typos & added the auto-GUI example & its link

MATLAB Release
MATLAB 5.2 (R10)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Win prizes and improve your MATLAB skills

Play today