File Exchange

image thumbnail

json4mat

version 1.0 (12.9 KB) by

This Matlab toolbox converts JSON formats into (json2mat) and from (mat2json) Matlab structures.

52 Downloads

Updated

View License

Details and manual at project web page at: http://json4mat.googlecode.com .

Comments and Ratings (8)

maxwell pinz

function[FILEWRITE] = Json_space_remover(FILENAME)
% Removes leading spaces in Json files, allowing them to be read.
% Maxwell Pinz 2017 Johns hopkins University
FILEWRITE = ['NoSpaces_',FILENAME];
fileID = fopen(FILENAME);
FID_write = fopen(FILEWRITE,'w');
C = textscan(fileID,'%s');
for ii = 1:length(C{1})
write_str = char(C{1}(ii));
fprintf(FID_write,'%s \n',write_str);
end
fclose(fileID);
fclose(FID_write);
end

Please note that that is a newer version at:

https://github.com/mathbiol/couch4mat/blob/gh-pages/json2mat.m

A very good read/write json support, which does not depend on any Java based library. Thanks.

Jordi Riba

Sorry, did not wake up today ...
kk=json2mat ('xx.js',1)

Jordi Riba

Hi, this file works really good to extract data from json files!!!

However I try to assign the results to a variable (to avoid having it in ans= ...) and I cannot do it. Any ideas? Thanks.

ted p teng

ted p teng (view profile)

Great tool! I just found a small bug. The code fails to write a correct JSON object when there's an empty array (and probably also fails with an empty cell).

Line 29 in mat2json.m it reads:

J(end)=']';

When the array is empty, this line will replace the opening '[' with the closing ']' (there's no trailing comma to replace!). A simple length check or string comparison to handle this edge case should fix it.

Thanks,
Jorge

Thanks for a very useful toolbox. I found a certain nesting of MATLAB structures and cell arrays which can not be taken for a round-trip to JSON and back. This snippet fails in the json2mat call:

mystruct0_f1.fieldA = 'A';
mystruct0_f1.fieldB = 'B';
mystruct0.field0 = 1;
mystruct0.field1 = mystruct0_f1;

mystruct1_f3.fieldC = 'C';
mystruct1_f3.fieldD = 'D';
mystruct1.field2 = 2;
mystruct1.field3 = mystruct1_f3;

mycarr = {mystruct0, mystruct1};

json2mat(mat2json(mycarr))

The output:

??? Reference to non-existent element of a cell array.

Error in ==> json2mat at 23
M=extract_struct(JJ{1}{1});

Error in ==> json2mat>extract_struct at 60
y.(t{1}{1})=json2mat(t{1}{2});

Error in ==> json2mat at 23
M=extract_struct(JJ{1}{1});

Error in ==> json2mat>extract_cell at 70
tag{i}=json2mat(x(indOC(i,1):indOC(i,2)));

Error in ==> json2mat at 26
M=extract_cell(JJ{1}{1});

Error in ==> jsontest at 13
json2mat(mat2json(mycarr))

MATLAB Release
MATLAB 7.10 (R2010a)
Tags Add Tags

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

html/