MCPcopy Create free account
hub / github.com/OSGeo/gdal / SerializeJSON

Function SerializeJSON

apps/gdalmdiminfo_lib.cpp:323–392  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

321/************************************************************************/
322
323static void SerializeJSON(const CPLJSONObject &obj,
324 CPLJSonStreamingWriter &serializer)
325{
326 switch (obj.GetType())
327 {
328 case CPLJSONObject::Type::Unknown:
329 {
330 CPLAssert(false);
331 break;
332 }
333
334 case CPLJSONObject::Type::Null:
335 {
336 serializer.AddNull();
337 break;
338 }
339
340 case CPLJSONObject::Type::Object:
341 {
342 auto objectContext(serializer.MakeObjectContext());
343 for (const auto &subobj : obj.GetChildren())
344 {
345 serializer.AddObjKey(subobj.GetName());
346 SerializeJSON(subobj, serializer);
347 }
348 break;
349 }
350
351 case CPLJSONObject::Type::Array:
352 {
353 auto arrayContext(serializer.MakeArrayContext());
354 const CPLJSONArray array = obj.ToArray();
355 for (const auto &subobj : array)
356 {
357 SerializeJSON(subobj, serializer);
358 }
359 break;
360 }
361
362 case CPLJSONObject::Type::Boolean:
363 {
364 serializer.Add(obj.ToBool());
365 break;
366 }
367
368 case CPLJSONObject::Type::String:
369 {
370 serializer.Add(obj.ToString());
371 break;
372 }
373
374 case CPLJSONObject::Type::Integer:
375 {
376 serializer.Add(obj.ToInteger());
377 break;
378 }
379
380 case CPLJSONObject::Type::Long:

Callers 1

DumpAttrValueFunction · 0.85

Calls 12

GetChildrenMethod · 0.80
AddObjKeyMethod · 0.80
ToBoolMethod · 0.80
ToIntegerMethod · 0.80
ToLongMethod · 0.80
ToDoubleMethod · 0.80
GetTypeMethod · 0.45
AddNullMethod · 0.45
GetNameMethod · 0.45
ToArrayMethod · 0.45
AddMethod · 0.45
ToStringMethod · 0.45

Tested by

no test coverage detected