image thumbnail

JSON encode/decode

version 1.2.0.0 (9.01 KB) by Léa Strobino
Parses a JSON string and returns a MATLAB object or encodes a MATLAB object into a JSON string

1.6K Downloads

Updated02 Jun 2018

From GitHub

View license on GitHub

json_decode parses a JSON string and returns a MATLAB object. JSON objects are converted to structures and JSON arrays are converted to vectors (all elements of the same type) or cell arrays (different types). 'null' values are converted to NaN.
json_encode encodes a MATLAB object into a JSON string. Structures are converted to JSON objects and arrays are converted to JSON arrays. Inf values are converted to the string "Inf". NaN values are converted to 'null'.

Note:
这个函数实现了JSON作为spe的超集cified in the original RFC 4627 - it will also decode scalar types and NULL. RFC 4627 only supports these values when they are nested inside an array or an object. Although this superset is consistent with the expanded definition of "JSON text" in the newer RFC 7159 (which aims to supersede RFC 4627), this may cause interoperability issues with older JSON parsers that adhere strictly to RFC 4627 when encoding a single scalar value. Seehttp://www.rfc-editor.org/rfc/rfc7159.txtfor more information.

Compilation:
mex json_decode.c jsmn.c
mex json_encode.c

Example:

url = 'https://aviationweather.gov/gis/scripts/MetarJSON.php?bbox=6.11,46.23,6.12,46.24';
metar = json_decode(urlread(url));
disp(metar.features.properties);

s = struct();
s.patient.name = 'John Doe';
s.patient.billing = 127.00;
s.patient.test = [79, 75, 73; 180, 178, 177.5; 220, 210, 205];
s.patient(2).name = 'Ann Lane';
s.patient(2).billing = 28.50;
s.patient(2).test = [68, 70, 68; 118, 118, 119; 172, 170, 169];
s.patient(3).name = 'New Name';
disp(json_encode(s));

Cite As

Léa Strobino (2022).JSON encode/decode(https://github.com/leastrobino/matlab-json), GitHub. Retrieved.

MATLAB Release Compatibility
Created with R2012b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!
To view or report issues in this GitHub add-on, visit theGitHub Repository.
To view or report issues in this GitHub add-on, visit theGitHub Repository.