Clear Filters
Clear Filters

Convert JSON to Table and Query Specific Value

48 views (last 30 days)
I have the following JSON array:
{"views":[{"Name":"A","Conf":"High","View":"Negative"}, {"Name":"B","Conf":"Low","View":"Negative"}, {"Name":"C","Conf":"Low","View":"Negative"}]}
How can I convert it to Table? Also, how can I query a specific row of the table? (Example: Find value of "Conf" where Name is "C.)
So far I have:
jsonData = '{"views":[{"Name":"A","Conf":"High","View":"Negative"}, {"Name":"B","Conf":"Low","View":"Negative"}, {"Name":"C","Conf":"Low","View":"Negative"}]}'
structData = jsondecode(jsonData);

Accepted Answer

Florian Bidaud
Florian Bidaud on 15 Aug 2023
Edited: Florian Bidaud on 15 Aug 2023
jsonData = '{"views":[{"Name":"A","Conf":"High","View":"Negative"}, {"Name":"B","Conf":"Low","View":"Negative"}, {"Name":"C","Conf":"Low","View":"Negative"}]}'
jsonData = '{"views":[{"Name":"A","Conf":"High","View":"Negative"}, {"Name":"B","Conf":"Low","View":"Negative"}, {"Name":"C","Conf":"Low","View":"Negative"}]}'
structData = jsondecode(jsonData)
structData = struct with fields:
views: [3×1 struct]
structDataTable = struct2table(structData.views)
structDataTable = 3×3 table
Name Conf View _____ ________ ____________ {'A'} {'High'} {'Negative'} {'B'} {'Low' } {'Negative'} {'C'} {'Low' } {'Negative'}
structDataTable.Name
ans = 3×1 cell array
{'A'} {'B'} {'C'}
structDataTable.Conf{[structDataTable.Name{:}]=='C'}
ans = 'Low'
  8 Comments
Florian Bidaud
Florian Bidaud on 16 Aug 2023
Edited: Florian Bidaud on 16 Aug 2023
when you affect your value, first check if it's empty or not:
if ~isempty(structDataTable.Conf{strcmp([structDataTable.Name(:)],'Cat')})
value = structDataTable.Conf{strcmp([structDataTable.Name(:)],'Cat')};
else
value = nan;
end
Monkey Coder
Monkey Coder on 16 Aug 2023
sorry, I am getting "Unable to perform assignment with 0 elements on the right-hand side." on the following line.
if ~isempty(structDataTable.Conf{strcmp([structDataTable.Name(:)],'Cat')})

Sign in to comment.

More Answers (0)

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!