@@ -190,14 +190,15 @@ void irrJSON::getElements( irrTreeNode* pNode )
190
190
if ( ! findName )
191
191
{
192
192
getElements ( &(pNode->addNode ( new irrJSONElement (name.c_str ()) )) );
193
+ name = " " ; // Clear name to prevent next comma from adding empty attribute
193
194
}
194
195
break ;
195
196
196
197
case ' }' : // <- unreachable anyways
197
198
case ' ;' :
198
199
case ' ,' :
199
200
findName = true ;
200
- if ( name.size () && name != " " )
201
+ if ( name.size () > 0 && name != " " )
201
202
elem->addAttribute (name,value);
202
203
name = " " ;
203
204
value = " " ;
@@ -231,7 +232,8 @@ void irrJSON::getElements( irrTreeNode* pNode )
231
232
// Must be looking for value
232
233
if ( (token[0 ] == ' }' || reader->atEOF ()) && !findName )
233
234
{
234
- elem->addAttribute (name,value);
235
+ if ( name.size () > 0 && name != " " )
236
+ elem->addAttribute (name,value);
235
237
}
236
238
237
239
continue ;
@@ -249,7 +251,8 @@ void irrJSON::getElements( irrTreeNode* pNode )
249
251
// Must be looking for value
250
252
if ( (token[0 ] == ' }' || reader->atEOF ()) && !findName )
251
253
{
252
- elem->addAttribute (name,value);
254
+ if ( name.size () > 0 && name != " " )
255
+ elem->addAttribute (name,value);
253
256
}
254
257
255
258
continue ;
@@ -280,7 +283,8 @@ void irrJSON::getElements( irrTreeNode* pNode )
280
283
// Must be looking for value
281
284
if ( (token[0 ] == ' }' || reader->atEOF ()) && !findName )
282
285
{
283
- elem->addAttribute (name,value);
286
+ if ( name.size () > 0 && name != " " )
287
+ elem->addAttribute (name,value);
284
288
}
285
289
} // end while loop
286
290
}
0 commit comments