C++分析研究  
C++
日历
<2014年5月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567
统计
  • 随笔 - 92
  • 文章 - 4
  • 评论 - 4
  • 引用 - 0

导航

常用链接

留言簿

随笔档案

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 

  JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。JSON用于描述数据结构,有以下形式存在。

  · 对象 (object):一个对象以“{”开始,并以“}”退出。一个对象包含一系列非排序的名称/值对,每个名称/值对之间使用“,”分区。

  · 名称/值(collection):名称和值之间使用“:”隔开,一般的形式是:

  {name:value}

  一个名称是一个字符串; 一个值可以是一个字符串,一个数值,一个对象,一个布尔值,一个有串行表,或者一个null值。

  · 值的有串行表(Array):一个或者多个值用“,”分区后,使用“[”,“]”括起来就形成了这样的列表,形如:

  [collection, collection]

  · 字符串:以""括起来的一串字符。

  · 数值:一系列0-9的数字组合,可以为负数或者小数。还可以用“e”或者“E”表示为指数形式。

  · 布林值:表示为 true 或者 false。

  麦好的AI乐园博客所有内容是原创,如果转载请注明来源

  http://blog.csdn.net/myhaspl/

  WEB开发

  JSON最开始被广泛的应用于WEB应用的开发,随着Web2.0的方兴未艾,JSON在WEB数据传输领域占有重要的地位。[来源请求]

  NoSQL数据库

  相对于传统的关系型数据库,一些基于文档存储的NoSQL非关系型数据库选择JSON作为其数据存储格式,比较出名的产品有:MongoDB、CouchDB、RavenDB等。

  下面是一个描述人员信息的json数据”

  {

  "firstName": "John",

  "lastName": "Smith",

  "male": true,

  "age": 25,

  "address":

  {

  "streetAddress": "21 2nd Street",

  "city": "New York",

  "state": "NY",

  "postalCode": "10021"

  },

  "phoneNumber":

  [

  {

  "type": "home",

  "number": "212 555-1234"

  },

  {

  "type": "fax",

  "number": "646 555-4567"

  }

  ]

  }

  JSON-GLib是一个库,实现了全JSON分析器使用GLib和的GObject。使用JSON - GLib的是有可能的解析和生成有效的JSON数据结构,利用一个DOM的API。的JSON GLib的还提供GObject的一体化,提供了序列化和反序列化能力GObject的实例,从JSON数据类型。JSON是JavaScript对象符 号,它可以用来表示对象和对象层次结构,同时保留人类可读性托福答案

  GLib是GTK+和GNOME工程的基础底层核心程序库,是一个综合用途的实用的轻量级的C程序库,它提供C语言的常用的数据结构的定义、相关的处理函 数,有趣而实用的宏,可移植的封装和一些运行时机能,如事件循环、线程、动态调用、对象系统等的API。它能够在类UNIX的操作系统平台(如 LINUX, HP-UNIX等),WINDOWS,OS2和BeOS等操作系统台上运行。

  GObject的对象系统提供了一种灵活的、可扩展的、并容易映射(到其它语言)的面向对象的C语言框架。它的实质可以概括为:

  · 一个通用类型系统,用来注册任意的、轻便的、单根继承的、并能推导出任意深度的结构类型的界面,它照顾组合对象的定制、初始化和内存管理,类结构,保持对象的父子关系,处理这些类型的动态实现。也就是说,这些类型的实现是在运行时重置和卸载的雅思答案 www.tygj123.com

  · 一个基本类型的实现集,如整型,枚举型和结构型等;

  · 一个基本对象体系之上的基本对象类型的实现的例子--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[1], &error);

  if (error)

  {

  g_print ("Unable to parse `%s': %s"\n, argv[1], 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;

  }

posted on 2014-03-07 10:29 HAOSOLA 阅读(1252) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


 
Copyright © HAOSOLA Powered by: 博客园 模板提供:沪江博客
PK10开奖 PK10开奖