Trouble with jsondecode() and jsonencode()

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 Commenti

Can you upload the original JSON file here, so that we can test to see what is going on?
Hello,
Could you provide me your email address so I can send it to you by email? I don't want to post the JSON file here in a public place.
Thanks.
Rui
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.)

Accedi per commentare.

Risposte (1)

fprintf(fid,"%s",str2)
That way if there are format spec characters in the JSON they are not interpretted as such.

2 Commenti

It works.
Thank you!
Rui
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.

Accedi per commentare.

Tag

Richiesto:

il 3 Mag 2021

Commentato:

il 29 Lug 2024

Community Treasure Hunt

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

Start Hunting!

Translated by