程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C指針原理(85)

C指針原理(85)

編輯:關於C

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語言框架。它的實質可以概括為:

· 一個通用類型系統,用來注冊任意的、輕便的、單根繼承的、並能推導出任意深度的結構類型的界面,它照顧組合對象的定制、初始化和內存管理,類結構,保持對象的父子關系,處理這些類型的動態實現。也就是說,這些類型的實現是在運行時重置和卸載的;

· 一個基本類型的實現集,如整型,枚舉型和結構型等;

· 一個基本對象體系之上的基本對象類型的實現的例子--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;

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved