json.builder

Module for [Builder] class

Types 3

[json.builder.Builder] provides an object for generating a JSON tree.

The root of the JSON tree can be either a [json.object.ObjectWrap] or a [json.array.Array]. Thus the first call must necessarily be either [json.builder.Builder.beginObject] or [json.builder.Builder.beginArray].

For convenience to language bindings, most [json.builder.Builder] method return the instance, making it easy to chain function calls.

Using [json.builder.Builder]

g_autoptr(JsonBuilder) builder = json_builder_new ();

json_builder_begin_object (builder);

json_builder_set_member_name (builder, "url");
json_builder_add_string_value (builder, "http://www.gnome.org/img/flash/two-thirty.png");

json_builder_set_member_name (builder, "size");
json_builder_begin_array (builder);
json_builder_add_int_value (builder, 652);
json_builder_add_int_value (builder, 242);
json_builder_end_array (builder);

json_builder_end_object (builder);

g_autoptr(JsonNode) root = json_builder_get_root (builder);

g_autoptr(JsonGenerator) gen = json_generator_new ();
json_generator_set_root (gen, root);
g_autofree char *str = json_generator_to_data (gen, NULL);

// str now contains the following JSON data
// { "url" : "http://www.gnome.org/img/flash/two-thirty.png", "size" : [ 652, 242 ] }

Methods
GType _gType() @property
Builder self()Returns `this`, for use in `with` statements.
BuilderGidBuilder builder()Get builder for [json.builder.Builder] Returns: New builder object
bool immutable_() @propertyGet `immutable_` property. Returns: Whether the tree should be immutable when created.
json.builder.Builder newImmutable()Creates a new, immutable [json.builder.Builder] instance.
json.builder.Builder addBooleanValue(bool value)Adds a boolean value to the currently open object member or array.
json.builder.Builder addDoubleValue(double value)Adds a floating point value to the currently open object member or array.
json.builder.Builder addIntValue(long value)Adds an integer value to the currently open object member or array.
json.builder.Builder addNullValue()Adds a null value to the currently open object member or array.
json.builder.Builder addStringValue(string value)Adds a boolean value to the currently open object member or array.
json.builder.Builder addValue(json.node.Node node)Adds a value to the currently open object member or array.
json.builder.Builder beginArray()Opens an array inside the given builder.
json.builder.Builder beginObject()Opens an object inside the given builder.
json.builder.Builder endArray()Closes the array inside the given builder that was opened by the most recent call to [json.builder.Builder.beginArray].
json.builder.Builder endObject()Closes the object inside the given builder that was opened by the most recent call to [json.builder.Builder.beginObject].
json.node.Node getRoot()Returns the root of the currently constructed tree.
void reset()Resets the state of the builder back to its initial state.
json.builder.Builder setMemberName(string memberName)Sets the name of the member in an object.
Constructors
this(void * ptr, Flag!"Take" take)
this()Creates a new [json.builder.Builder].
Methods
T immutable_(bool propval)Set `immutable_` property. Params: propval = Whether the tree should be immutable when created.

Fluent builder for [json.builder.Builder]

Methods