| 網(wǎng)站首頁 | 關(guān)于我們 | 開發(fā)優(yōu)勢(shì) | 產(chǎn)品展示 |
| 合作企業(yè) | 新聞動(dòng)態(tài) | 聯(lián)系我們 | 電話聯(lián)系 |
文章作者:濟(jì)南軟件開發(fā) 時(shí)間:2016年12月20日
JSON 即 JavaScript Object Natation,它是一種輕量級(jí)的數(shù)據(jù)交換格式,非常適合于服務(wù)器與 JavaScript 的交互。是獨(dú)立于語言的文本格式,并且采用了類似于C語言家族的一些習(xí)慣。JSON用于描述數(shù)據(jù)結(jié)構(gòu),有以下形式存在。
· 對(duì)象 (object):一個(gè)對(duì)象以“{”開始,并以“}”退出。一個(gè)對(duì)象包含一系列非排序的名稱/值對(duì),每個(gè)名稱/值對(duì)之間使用“,”分區(qū)。
· 名稱/值(collection):名稱和值之間使用“:”隔開,一般的形式是:
{name:value}
一個(gè)名稱是一個(gè)字符串; 一個(gè)值可以是一個(gè)字符串,一個(gè)數(shù)值,一個(gè)對(duì)象,一個(gè)布爾值,一個(gè)有串行表,或者一個(gè)null值。
· 值的有串行表(Array):一個(gè)或者多個(gè)值用“,”分區(qū)后,使用“[”,“]”括起來就形成了這樣的列表,形如:
[collection, collection]
· 字符串:以""括起來的一串字符。
· 數(shù)值:一系列0-9的數(shù)字組合,可以為負(fù)數(shù)或者小數(shù)。還可以用“e”或者“E”表示為指數(shù)形式。
· 布林值:表示為 true 或者 false。
WEB開發(fā)
JSON最開始被廣泛的應(yīng)用于WEB應(yīng)用的開發(fā),隨著Web2.0的方興未艾,JSON在WEB數(shù)據(jù)傳輸領(lǐng)域占有重要的地位。[來源請(qǐng)求]
NoSQL數(shù)據(jù)庫
相對(duì)于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,一些基于文檔存儲(chǔ)的NoSQL非關(guān)系型數(shù)據(jù)庫選擇JSON作為其數(shù)據(jù)存儲(chǔ)格式,比較出名的產(chǎn)品有:MongoDB、CouchDB、RavenDB等。
下面是一個(gè)描述人員信息的json數(shù)據(jù)”
{
"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是一個(gè)庫,實(shí)現(xiàn)了全JSON分析器使用GLib和的GObject。使用JSON - GLib的是有可能的解析和生成有效的JSON數(shù)據(jù)結(jié)構(gòu),利用一個(gè)DOM的API。的JSON GLib的還提供GObject的一體化,提供了序列化和反序列化能力GObject的實(shí)例,從JSON數(shù)據(jù)類型。JSON是JavaScript對(duì)象符 號(hào),它可以用來表示對(duì)象和對(duì)象層次結(jié)構(gòu),同時(shí)保留人類可讀性。
GLib是GTK+和GNOME工程的基礎(chǔ)底層核心程序庫,是一個(gè)綜合用途的實(shí)用的輕量級(jí)的C程序庫,它提供C語言的常用的數(shù)據(jù)結(jié)構(gòu)的定義、相關(guān)的處理函 數(shù),有趣而實(shí)用的宏,可移植的封裝和一些運(yùn)行時(shí)機(jī)能,如事件循環(huán)、線程、動(dòng)態(tài)調(diào)用、對(duì)象系統(tǒng)等的API。它能夠在類UNIX的操作系統(tǒng)平臺(tái)(如 LINUX, HP-UNIX等),WINDOWS,OS2和BeOS等操作系統(tǒng)臺(tái)上運(yùn)行。
GObject的對(duì)象系統(tǒng)提供了一種靈活的、可擴(kuò)展的、并容易映射(到其它語言)的面向?qū)ο蟮腃語言框架。它的實(shí)質(zhì)可以概括為:
· 一個(gè)通用類型系統(tǒng),用來注冊(cè)任意的、輕便的、單根繼承的、并能推導(dǎo)出任意深度的結(jié)構(gòu)類型的界面,它照顧組合對(duì)象的定制、初始化和內(nèi)存管理,類結(jié)構(gòu),保持對(duì)象的父子關(guān)系,處理這些類型的動(dòng)態(tài)實(shí)現(xiàn)。也就是說,這些類型的實(shí)現(xiàn)是在運(yùn)行時(shí)重置和卸載的;
· 一個(gè)基本類型的實(shí)現(xiàn)集,如整型,枚舉型和結(jié)構(gòu)型等;
· 一個(gè)基本對(duì)象體系之上的基本對(duì)象類型的實(shí)現(xiàn)的例子--GObject基本類型;
· 一個(gè)信號(hào)系統(tǒng),允許用戶非常靈活的自定義虛的或重載對(duì)象的方法,并且能充當(dāng)非常有效力的通知機(jī)制;
· 一個(gè)可擴(kuò)展的參數(shù)/變量體系,支持所有的能被用作處理對(duì)象屬性或其它參數(shù)化類型的基本的類型。
打開JSON-GLIB主頁:
下面這段代碼使用了json-glib庫讀取上述人員信息:
#include
#include
#include
int
main (int argc, char *argv[])
{
JsonParser *parser;
JsonNode *root;
GError *error;
if (argc < 2)
{
g_print ("Usage: test
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;
}
想要了解更多詳情歡迎來電咨詢18678812288
登陸網(wǎng)址:m.h6244.cn。
聯(lián)系人:王經(jīng)理。