MATLAB Answers

JSON decode data format

8 views (last 30 days)
peaksix on 28 Mar 2017
Commented: Doug Addy on 21 Sep 2020
I am attempting to use the jsondecode function to look at weather data via an API. The issue I am running into is that the format of data type in Matlab changes depending on what is returned.
For example, if I am look at 5 days, and all 5 days have the same information (such as Temperature, wind speed, humidity, and chance of precipitation), then Matlab will format the data as a structure array. So then I access individual values using smooth parentheses ( ).
However, if one of the days is different, then Matlab will format the data as a cell array of scalar structures. Say that it happened to rain one day, then it might add the field "precipitation type". Now since one day is different, I must access the data using curly braces { }.
Is there any way to avoid this? Or force it to use certain formatting all the time? (Such as always returning it as always using a cell array format?)

Answers (1)

Carl on 4 Apr 2017
Unfortunately, there doesn't seem to be a way to force the output to be a specific format. As a workaround, I'd suggest checking the output with the 'iscell' function, and then work with the data accordingly.
Doug Addy
Doug Addy on 21 Sep 2020
Very frustrating indeed, this is a very common situation where json data has optional fields. Please just return objects in a cell array, having to handle each case separately with exactly the same code with different brackets is really silly.

Sign in to comment.


Community Treasure Hunt

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

Start Hunting!

Translated by