感觉这是 json的 glib binding.
写了一个例子代码:
#include <stdlib.h>
#include <stdio.h>
#include <glib-object.h>
#include <json-glib/json-glib.h>
int main(void)
{
JsonBuilder *builder = json_builder_new();
json_builder_begin_object(builder);
json_builder_set_member_name(builder, "array");
json_builder_begin_array(builder);
json_builder_begin_object(builder);
json_builder_set_member_name(builder, "name");
json_builder_add_string_value(builder, "charles");
json_builder_set_member_name(builder, "age");
json_builder_add_int_value(builder, 20);
json_builder_end_object(builder);
json_builder_begin_object(builder);
json_builder_set_member_name(builder, "name");
json_builder_add_string_value(builder, "May");
json_builder_set_member_name(builder, "age");
json_builder_add_int_value(builder, 21);
json_builder_end_object(builder);
json_builder_end_array(builder);
json_builder_end_object(builder);
JsonNode *node = json_builder_get_root(builder);
g_object_unref( builder);
JsonGenerator *generator = json_generator_new();
json_generator_set_root(generator, node);
gchar *data = json_generator_to_data(generator, NULL);
printf("%s\n", data);
json_node_free(node);
g_object_unref(generator);
free(data);
return 0;
}
gcc 1.c -g -o 1 $(pkg-config --cflags --libs json-glib-1.0)
输出:
{"array":[{"name":"charles","age":20},{"name":"May","age":21}]}
参考: