Trouble with jsondecode() and jsonencode()
39 次查看(过去 30 天)
显示 更早的评论
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 个评论
the cyclist
2021-5-3
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.)
回答(1 个)
Sean de Wolski
2021-5-3
fprintf(fid,"%s",str2)
That way if there are format spec characters in the JSON they are not interpretted as such.
2 个评论
Isaac Asher
2024-7-29
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 JSON Format 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!