36 d.
id = j.at( 1 ).get<wxString>();
37 d.
parentId = j.at( 2 ).get<wxString>();
38 d.
key = j.at( 3 ).get<wxString>();
39 d.
value = j.at( 4 ).get<wxString>();
41 if( j.at( 5 ).is_number() )
43 else if( j.at( 5 ).is_boolean() )
46 if( j.at( 6 ).is_number() )
48 else if( j.at( 6 ).is_boolean() )
51 if( j.at( 7 ).is_number() && j.at( 8 ).is_number() )
54 if( j.at( 9 ).is_number() )
57 if( j.at( 10 ).is_string() )
63 d.
id = j.at( 1 ).get<wxString>();
64 d.
parentId = j.at( 3 ).get<wxString>();
67 if( j.at( 5 ).is_number() && j.at( 6 ).is_number() )
70 d.
key = j.at( 7 ).get<wxString>();
72 if( j.at( 8 ).is_string() )
73 d.
value = j.at( 8 ).get<wxString>();
74 else if( j.at( 8 ).is_number_integer() )
75 d.
value << ( j.at( 8 ).get<
int>() );
77 if( j.at( 9 ).is_number() )
79 else if( j.at( 9 ).is_boolean() )
82 if( j.at( 10 ).is_number() )
84 else if( j.at( 10 ).is_boolean() )
87 if( j.at( 11 ).is_string() )
88 d.
fontName = j.at( 11 ).get<wxString>();
90 if( j.at( 12 ).is_number() )
93 if( j.at( 13 ).is_number() )
96 if( j.at( 16 ).is_number() )
99 if( j.at( 17 ).is_number() )
102 if( j.at( 18 ).is_number() )
109 d.
id = j.at( 1 ).get<wxString>();
110 d.
name = j.at( 2 ).get<wxString>();
112 if( j.at( 3 ).is_number() && j.at( 4 ).is_number() )
115 if( j.at( 5 ).is_number() )
118 if( j.at( 6 ).is_number() )
119 d.
mirror = j.at( 6 ).get<
int>();
121 if( j.at( 6 ).is_number() )
124 if( j.at( 7 ).is_object() )
127 if( j.at( 8 ).is_number() )
134 d.
id = j.at( 1 ).get<wxString>();
137 if( j.at( 3 ).is_string() )
144 d.
id = j.at( 1 ).get<wxString>();
146 if( j.at( 4 ).is_number() && j.at( 5 ).is_number() )
149 if( j.at( 6 ).is_number() )
152 if( j.at( 7 ).is_number() )
155 if( j.at( 9 ).is_number() )
156 d.
inverted = j.at( 9 ).get<
int>() == 2;
161 if( !j.at( 1 ).is_object() )
164 nlohmann::json
config = j.at( 1 );
176 d.
name = j.value(
"name",
"" );
177 d.
uuid = j.value(
"uuid",
"" );
178 d.
id = j.value(
"id", 0 );
183 d.
name = j.value(
"name",
"" );
184 d.
sheets = j.value(
"sheets", std::vector<PRJ_SHEET>{} );
189 d.
schematic = j.value(
"schematic",
"" );
190 d.
pcb = j.value(
"pcb",
"" );
195 if( j.at(
"source" ).is_string() )
196 d.
source = j.at(
"source" ).get<wxString>();
198 if( j.contains(
"desc" ) )
199 d.
desc = j.at(
"desc" ).get<wxString>();
200 else if( j.contains(
"description" ) )
201 d.
desc = j.at(
"description" ).get<wxString>();
203 if( j.contains(
"display_title" ) )
204 d.
title = j.at(
"display_title" ).get<wxString>();
205 else if( j.contains(
"title" ) )
206 d.
title = j.at(
"title" ).get<wxString>();
208 if( j.at(
"version" ).is_string() )
209 d.
version = j.at(
"version" ).get<wxString>();
211 if( j.at(
"type" ).is_number() )
212 d.
type = j.at(
"type" );
214 if( j.at(
"tags" ).is_object() )
215 d.
tags = j.at(
"tags" );
217 if( j.find(
"custom_tags" ) != j.end() && j.at(
"custom_tags" ).is_object() )
223 if( j.at(
"source" ).is_string() )
224 d.
source = j.at(
"source" ).get<wxString>();
226 if( j.contains(
"desc" ) )
227 d.
desc = j.at(
"desc" ).get<wxString>();
228 else if( j.contains(
"description" ) )
229 d.
desc = j.at(
"description" ).get<wxString>();
231 if( j.contains(
"display_title" ) )
232 d.
title = j.at(
"display_title" ).get<wxString>();
233 else if( j.contains(
"title" ) )
234 d.
title = j.at(
"title" ).get<wxString>();
236 if( j.at(
"version" ).is_string() )
237 d.
version = j.at(
"version" ).get<wxString>();
239 if( j.at(
"type" ).is_number() )
240 d.
type = j.at(
"type" );
242 if( j.at(
"tags" ).is_object() )
243 d.
tags = j.at(
"tags" );
245 if( j.find(
"custom_tags" ) != j.end() && j.at(
"custom_tags" ).is_object() )
251 if( j.at(
"source" ).is_string() )
252 d.
source = j.at(
"source" ).get<wxString>();
254 if( j.contains(
"desc" ) )
256 else if( j.contains(
"description" ) )
257 d.
description = j.at(
"description" ).get<wxString>();
259 if( j.contains(
"display_title" ) )
260 d.
title = j.at(
"display_title" ).get<wxString>();
261 else if( j.contains(
"title" ) )
262 d.
title = j.at(
"title" ).get<wxString>();
264 if( j.at(
"version" ).is_string() )
265 d.
version = j.at(
"version" ).get<wxString>();
267 if( j.at(
"tags" ).is_object() )
268 d.
tags = j.at(
"tags" );
270 if( j.find(
"custom_tags" ) != j.end() && j.at(
"custom_tags" ).is_object() )
273 if( j.at(
"attributes" ).is_object() )
279 d.
objectId = j.at( 1 ).get<wxString>();
280 d.
url = j.at( 3 ).get<wxString>();
285 d.
pouredId = j.at( 1 ).get<wxString>();
286 d.
parentId = j.at( 2 ).get<wxString>();
287 d.
unki = j.at( 3 ).get<
int>();
288 d.
isPoly = j.at( 4 ).get<
bool>();
void from_json(const nlohmann::json &j, EASYEDAPRO::SCH_ATTR &d)
nlohmann::json custom_tags
std::map< wxString, wxString > attributes
std::vector< PRJ_SHEET > sheets
nlohmann::json custom_tags
std::optional< VECTOR2D > position
nlohmann::json customProps
std::vector< std::vector< double > > geometry