Trouble with jsondecode() and jsonencode()

조회 수: 39 (최근 30일)
Rui Zhang
Rui Zhang 2021년 5월 3일
댓글: Isaac Asher 2024년 7월 29일
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
Rui Zhang
Rui Zhang 2021년 5월 3일
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
the cyclist
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
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
Rui Zhang
Rui Zhang 2021년 5월 3일
It works.
Thank you!
Rui
Isaac Asher
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 CenterFile Exchange에서 JSON Format에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by