user3269606
user3269606

Reputation: 65

JSON - nesting of objects

How to append [ and ] to json objects in c programming....

i have something like

      json_builder_begin_object(builder);
      json_builder_set_member_name( builder, "response" );
      json_builder_add_string_value( builder, "success" );

      json_builder_set_member_name( builder, "data" );
      json_builder_begin_object( builder );
      json_builder_set_member_name( builder, "type" );
      json_builder_add_string_value( builder, "vehicle " );
       json_builder_set_member_name( builder, "value" );
       json_builder_add_string_value( builder, ">10lakhs " );
        json_builder_set_member_name(builder,"color");
        json_builder_add_string_value(builder,"Black");

I need the response like

[{"response":"success"},"data"[{"type":"vehicle"},{"value":">10lakhs"},{"color":"black"}]]

-Thanks in advance.. :) :)

Upvotes: 0

Views: 230

Answers (1)

You have to use the set_member_name and begin_object. The former sets the name of the subobject, and the latter inits the subobject so the rest of data goes inside it.

For example, from my Countly app:

  json_builder_begin_object (builder);

  if(crash->hardware){
      json_builder_set_member_name (builder, "hardware");
      json_builder_begin_object(builder);
      if(crash->hardware->os){
      json_builder_set_member_name (builder, "_os");
      json_builder_add_string_value (builder, crash->hardware->os);
      }

      if(crash->hardware->os_version) {
      json_builder_set_member_name (builder, "_os_version");
      json_builder_add_string_value (builder, crash->hardware->os_version);
      }
      if(crash->hardware->manufacture) {
      json_builder_set_member_name (builder, "_manufacture");
      json_builder_add_string_value (builder, crash->hardware->manufacture);
      }
      if(crash->hardware->device) {
      json_builder_set_member_name (builder, "_device");
      json_builder_add_string_value (builder, crash->hardware->device);
      }
      if(crash->hardware->resolution) {
      json_builder_set_member_name (builder, "_resolution");
      json_builder_add_string_value (builder, crash->hardware->resolution);
      }
      if(crash->hardware->app_version) {
      json_builder_set_member_name (builder, "_app_version");
      json_builder_add_string_value (builder, crash->hardware->app_version);
      }
      if(crash->hardware->cpu) {
      json_builder_set_member_name (builder, "_cpu");
      json_builder_add_string_value (builder, crash->hardware->cpu);
      }
      if(crash->hardware->opengl) {
      json_builder_set_member_name (builder, "_opengl");
      json_builder_add_string_value (builder, crash->hardware->opengl);
      }
      json_builder_end_object (builder);

  }

Upvotes: 1

Related Questions