how can I cause jsondecode to add [ ]

10 ビュー (過去 30 日間)
uriel shitrit
uriel shitrit 2021 年 12 月 15 日
編集済み: Prince Kumar 2022 年 1 月 20 日
Hi
In order to create a JSON file that is suitable for another application out of Matlab, I arranged all the needed parameters as fieldName of struct array like in the code below. but ,unfortunately, in the output it missing [ ] on the "regions" subfieldNames .
how can I fix it with Matlab.
Many thanks to the helpers.
the code for 1 file as an example
for c=1:1 %numel(X)/2
jsonformat1.filename=string(J{c,1});
jsonformat1.size=J{c,2};
jsonformat1.regions.shape_attributes.name="polygon";
jsonformat1.regions.shape_attributes.all_points_x=J{c,3};
jsonformat1.regions.shape_attributes.all_points_y=J{c,4};
jsonformat1.regions.region_attributes.name="not difined";
jsonformat1.regions.region_attributes.type="unknown";
jsonformat1.regions.region_attributes.image_quality.good="true";
jsonformat1.regions.region_attributes.image_quality.frontal="true";
jsonformat1.regions.region_attributes.image_quality.good_illumination="true";
jsonformat1.file_attributes.caption={};
jsonformat1.file_attributes.public_domain="no";
jsonformat1.file_attributes.image_url={};
end
jsonencode(jsonformat1)
the output from matlab
'{"filename":"case100im16.jpg","size":207942,"region":{"shape_attributes":{"name":"polygon","all_points_x":[425,432,442,452,449,468,465,495],"all_points_y":[370,372,353,354,321,314,305,312,]},"region_attributes":{"name":"not difined","type":"unknown","image_quality":{"good":"true","frontal":"true","good_illumination":"true"}}},"file_attributes":{"caption":[],"public_domain":"no","image_url":[]}}'
the output needed to the other application ( addition of " [ " before "shape_attributes" and " ] "before "file_attributes")
'{"filename":"case100im16.jpg","size":207942,"region":[{"shape_attributes":{"name":"polygon","all_points_x":[425,432,442,452,449,468,465,495],"all_points_y":[370,372,353,354,321,314,305,312,]},"region_attributes":{"name":"not difined","type":"unknown","image_quality":{"good":"true","frontal":"true","good_illumination":"true"}}}],"file_attributes":{"caption":[],"public_domain":"no","image_url":[]}}'
  2 件のコメント
Geoff Hayes
Geoff Hayes 2021 年 12 月 15 日
@uriel shitrit - the [] indicates an array so it isn't clear to me why these square brackets would be required for the "region" field..unless you are allowing for multiple shape_attributes?
uriel shitrit
uriel shitrit 2021 年 12 月 15 日
I really don't know why it was needed I just saw that when I manually add it to the file the other application succeeds to load and read the file

サインインしてコメントする。

回答 (1 件)

Prince Kumar
Prince Kumar 2022 年 1 月 19 日
編集済み: Prince Kumar 2022 年 1 月 20 日
Hi,
You can create another json which you want to put in [].
You can refer the following implementation
jsonformat1.filename= "file_name";
jsonformat1.size=12;
subjson.shape_attributes = "polygon";
subjson.region_attributes.name="not difined";
subjson.region_attributes.type="unknown";
jsonformat1.region = {subjson};
jsonformat1.file_attributes.public_domain="no";
jsonencode(jsonformat1)
In the above example subjson has the data that you want to put in [].
I hope you find this information useful.

カテゴリ

Help Center および File ExchangeJSON Format についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by