GObject的对象系统提供了一种灵活的、可扩展的、并容易映射(到其它语言)的面向对象的C语言框架。它的实质可以概括为:
· 一个通用类型系统,用来注册任意的、轻便的、单根继承的、并能推导出任意深度的结构类型的界面,它照顾组合对象的定制、初始化和内存管理,类结构,保持对象的父子关系,处理这些类型的动态实现。也就是说,这些类型的实现是在运行时重置和卸载的;
· 一个基本类型的实现集,如整型,枚举型和结构型等;
· 一个基本对象体系之上的基本对象类型的实现的例子--GObject基本类型;
· 一个信号系统,允许用户非常灵活的自定义虚的或重载对象的方法,并且能充当非常有效力的通知机制;
· 一个可扩展的参数/变量体系,支持所有的能被用作处理对象属性或其它参数化类型的基本的类型。
打开JSON-GLIB主页:
https://wiki.gnome.org/action/show/Projects/JsonGlib action=show&redirect=JsonGlib
下载0.99.2版。
下面这段代码使用了json-glib库读取上述人员信息:
#include
#include
#include
int
main (int argc, char *argv[])
{
JsonParser *parser;
JsonNode *root;
GError *error;
if (argc < 2)
{
g_print ("Usage: test \n");
return EXIT_FAILURE;
}
g_type_init ();
parser = json_parser_new ();
error = NULL;
json_parser_load_from_file (parser, argv , &error);
if (error)
{
g_print ("Unable to parse `%s': %s"\n, argv , error->message);
g_error_free (error);
g_object_unref (parser);
return EXIT_FAILURE;
}
root = json_parser_get_root (parser);
/* manipulate the object tree and then exit */
g_object_unref (parser);
return EXIT_SUCCESS;
}