jsonecode doesn't support complex doubles

28 views (last 30 days)
After a few error messages about encoding objects of class double, I figuered out that my highlevel structs had a field that contianed complex doubles, and therefore couldn't be encoded. So, I was wondering:
Is there a particular reason that complex doubles aren't supported by jsonecode?
If the reason isn't a lack of general consenus on default encoding of complex doubles in JSON, what is the convention?
Thanks,

Accepted Answer

Ive J
Ive J on 22 Feb 2022
Here says:
"JSON has no standard way to represent complex numbers, so there is no way to test for them in JSON Schema."
Here also, you'll find more:
You have two (maybe more?) options:
x.a = 1 + 2i;
% 1st
mps.json.encode(x)
ans = '{"a":{"mwcomplex":true,"mwdata":[1,2],"mwsize":[1,1],"mwtype":"double"}}'
% 2nd
y = x;
y.a = string(y.a);
jsonencode(y)
ans = '{"a":"1+2i"}'
% error
jsonencode(x)
Error using jsonencode
Unable to encode objects of class double as JSON-formatted text.
  1 Comment
Alexander DeWitt
Alexander DeWitt on 22 Feb 2022
Thanks for the complete answer. I was moving in that direction, but I'm glad I checked and got the full background information.

Sign in to comment.

More Answers (0)

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!