Trouble with jsondecode() and jsonencode()
39 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I have a JSON file. I am trying to test the MATLAB functions before using them. So I loaded it
str1 = fileread('json_filename1.json');
mydata1 = jsondecode(str1)
str2 = jsonencode(mydata1)
fid = fopen('json_filename2.json','wt')
fprintf(fid,str2)
fclose(fid)
Then I go to the online JSON file editor: https://jsoneditoronline.org/#left=local.jagoxe to load both files. I am able to load 'json_filename1.json' but I can't load 'json_filename2.json' correctly. I got the following error message:
Failed to switch to "tree" mode because of Invalid JSON:
Parse error on line 1:
...,"errorDescription":"CreateACPath Execut
-----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined'
It looks like either jsondecode() or jsonencode() has something wrong.
Also, when I used strcmp(str1,str2), I saw a lot of difference between them.
3 comentarios
the cyclist
el 3 de Mayo de 2021
No, sorry.
But perhaps you could distill your JSON down to a simplified and/or obscured version that still shows the problem, but you are comfortable sharing? (This may also help narrow down exactly what is causing the issue.)
Respuestas (1)
Sean de Wolski
el 3 de Mayo de 2021
fprintf(fid,"%s",str2)
That way if there are format spec characters in the JSON they are not interpretted as such.
2 comentarios
Isaac Asher
el 29 de Jul. de 2024
Awesome - I needed this to ensure that one of my fields in the JSON (a path to a file) got saved & loaded correctly. Otherwise it got messed up due to the slashes / escape characters.
Ver también
Categorías
Más información sobre JSON Format en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!