JSON decode data format

4 vues (au cours des 30 derniers jours)
peaksix
peaksix le 28 Mar 2017
Modifié(e) : Jidong Zhang le 28 Juil 2022
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?)

Réponses (1)

Carl
Carl le 4 Avr 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.
  4 commentaires
Doug Addy
Doug Addy le 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.
Jidong Zhang
Jidong Zhang le 28 Juil 2022
Modifié(e) : Jidong Zhang le 28 Juil 2022
I came across exactly the same situation and I completely agree with Doug. Please help to add this in the request for future update. Thank you!

Connectez-vous pour commenter.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by