image thumbnail

matlab-json-c

version 1.1 (3.59 KB) by Sean Bone
A simple parser for JSON with Comments written in MATLAB

8 Downloads

Updated 2 Mar 2022

From GitHub

View License on GitHub

JSON+C parsing for MATLAB

View matlab-json-c on File Exchange

This package offers some simple functions to handle JSON+C (JSON with comments) in a MATLAB script.

  • jsonc.removeJSONComments removes JavaScript-style comments from the string (or char array) you give it as argument.
  • jsonc.jsoncDecode is a wrapper for MATLAB's native jsondecode. It filters the string you give it though jsonc.removeJSONComments before passing it to jsondecode.
  • jsonc.jsonEncode is a wrapper for MATLAB's native jsonencode. This tries to use the PrettyPrint option if it is supported (which depends on your MATLAB version).

The demo.m script shows example usage.

>> demo
Original string:
{
	// One-line comment
	"foo": "bar", // One-line comment at end of line
	/*
		Multiline comment
	*/
	"singleLinerInString": "//",
	"multilinerInString": "/*",
	"*/": "baz"
}

String without comments:
{

	"foo": "bar", 

	"singleLinerInString": "//",
	"multilinerInString": "/*",
	"*/": "baz"
}


recoveredData = 

  struct with fields:

                    foo: 'bar'
    singleLinerInString: '//'
     multilinerInString: '/*'
                    x__: 'baz'

Data re-encoded to JSON:
{
  "foo": "bar",
  "singleLinerInString": "//",
  "multilinerInString": "/*",
  "x__": "baz"
}

But why?

The JSON standard does not allow for comments. However, it is often convenient to allow for them when using JSON as a markup language for configuration files and the likes. Hence the need for the not-quite-official JSON+C variant.

Although there is already a similar implementation on the MATLAB file exchange, that relies on an external JSON parser and requires you to compile it with MEX for your target platform(s). This is a much more lightweight alternative implemented in "vanilla" MATLAB.

Cite As

Sean Bone (2022). matlab-json-c (https://github.com/SeanBone/matlab-json-c/releases/tag/v1.1), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2021a
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!
To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.