Convert JSON to Table and Query Specific Value

31 Ansichten (letzte 30 Tage)
Monkey Coder
Monkey Coder am 15 Aug. 2023
Kommentiert: Monkey Coder am 16 Aug. 2023
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);

Akzeptierte Antwort

Florian Bidaud
Florian Bidaud am 15 Aug. 2023
Bearbeitet: Florian Bidaud am 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 Kommentare
Florian Bidaud
Florian Bidaud am 16 Aug. 2023
Bearbeitet: Florian Bidaud am 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 am 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')})

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by