色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > Linux json-c使用

Linux json-c使用 時(shí)間:2018-08-16      來源:未知

一、JSON介紹

JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。 易于人閱讀和編寫。同時(shí)也易于機(jī)器解析和生成。 它基于JavaScript Programming Language,Standard ECMA-262 3rd Edition - December 1999的一個(gè)子集。 JSON采用完全獨(dú)立于語言的文本格式,但是也使用了類似于C語言家族的習(xí)慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 這些特性使JSON成為理想的數(shù)據(jù)交換語言。

JSON建構(gòu)于兩種結(jié)構(gòu):

(1) “名稱/值”對(duì)的集合(A collection of name/value pairs)。不同的語言中,它被理解為對(duì)象(object),紀(jì)錄(record),結(jié)構(gòu)(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關(guān)聯(lián)數(shù)組 (associative array)。

(2)值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數(shù)組(array)。

這些都是常見的數(shù)據(jù)結(jié)構(gòu)。事實(shí)上大部分現(xiàn)代計(jì)算機(jī)語言都以某種形式支持它們。這使得一種數(shù)據(jù)格式在同樣基于這些結(jié)構(gòu)的編程語言之間交換成為可能。

JSON具有以下這些形式:

對(duì)象是一個(gè)無序的“‘名稱/值’對(duì)”集合。一個(gè)對(duì)象以“{”(左括號(hào))開始,“}”(右括號(hào))結(jié)束。每個(gè)“名稱”后跟一個(gè)“:”(冒號(hào));“‘名稱/值’ 對(duì)”之間使用“,”(逗號(hào))分隔。

數(shù)組是值(value)的有序集合。一個(gè)數(shù)組以“[”(左中括號(hào))開始,“]”(右中括號(hào))結(jié)束。值之間使用“,”(逗號(hào))分隔。

值(value)可以是雙引號(hào)括起來的字符串(string)、數(shù)值(number)、true、false、 null、對(duì)象(object)或者數(shù)組(array)。這些結(jié)構(gòu)可以嵌套。

字符串(string)是由雙引號(hào)包圍的任意數(shù)量Unicode字符的集合,使用反斜線轉(zhuǎn)義。一個(gè)字符(character)即一個(gè)單獨(dú)的字符串(character string)。

字符串(string)與C或者Java的字符串非常相似。

數(shù)值(number)也與C或者Java的數(shù)值非常相似。除去未曾使用的八進(jìn)制與十六進(jìn)制格式。除去一些編碼細(xì)節(jié)。

空白可以加入到任何符號(hào)之間。以下描述了完整的語言。

二、JSON對(duì)象結(jié)構(gòu)

JSON結(jié)構(gòu)共有2種:

(1)對(duì)象結(jié)構(gòu)

(2)數(shù)組結(jié)構(gòu)

JSON,簡單來說就是JavaScript中的對(duì)象或數(shù)組,所以這兩種結(jié)構(gòu)就是對(duì)象和數(shù)組。通過這兩種結(jié)構(gòu)就可以表示各種復(fù)雜的結(jié)構(gòu)。

1、JSON對(duì)象結(jié)構(gòu)

對(duì)象結(jié)構(gòu)是使用大括號(hào)“{}”括起來的,大括號(hào)內(nèi)是由0個(gè)或多個(gè)用英文逗號(hào)分隔的“關(guān)鍵字:值”對(duì)(key:value)構(gòu)成的。

語法:

varjsonObj =

{

"鍵名1":值1,

"鍵名2":值2,

……

"鍵名n":值n

}

說明:

jsonObj指的是json對(duì)象。對(duì)象結(jié)構(gòu)是以“{”開始,到“}”結(jié)束。其中“鍵名”和“值”之間用英文冒號(hào)構(gòu)成對(duì),兩個(gè)“鍵名:值”之間用英文逗號(hào)分隔。

注意,這里的鍵名是字符串,但是值可以是數(shù)值、字符串、對(duì)象、數(shù)組或邏輯true和false。

舉例:

<!DOCTYPE html>

<html xmlns="//www.w3.org/1999/xhtml">

<head>

<title></title>

<script type="text/javascript">

 varobj =

 {

 "name":"helicopter",

 "age":23,

//JSON對(duì)象內(nèi)部也有一個(gè)JSON對(duì)象

 hobby:

{

 "first":"swimming",

"second":"singing",

"third":"dancing"

}

}

 //讀取JSON數(shù)據(jù)

document.write("名字是:"+obj.name+"<br>");

document.write("第一項(xiàng)愛好是:"+obj.hobby.first);

</script>

</head>

<body>

</body>

</html>

在瀏覽器預(yù)覽效果如下:

2、JSON對(duì)象結(jié)構(gòu)

JSON數(shù)組結(jié)構(gòu)是用中括號(hào)“[]”括起來,中括號(hào)內(nèi)部由0個(gè)或多個(gè)以英文逗號(hào)“,”分隔的值列表組成。

語法:vararr =

[

{

"鍵名1":值1,

"鍵名2":值2

},

{

"鍵名3":值3,

"鍵名4":值4

},

……

]

說明:

arr指的是json數(shù)組。數(shù)組結(jié)構(gòu)是以“[”開始,到“]”結(jié)束,這一點(diǎn)跟JSON對(duì)象不同。不過在JSON數(shù)組結(jié)構(gòu)中,每一對(duì)“{}”相當(dāng)于一個(gè)JSON對(duì)象,大家看看像不像?而且語法都非常類似。

注意,這里的鍵名是字符串,但是值可以是數(shù)值、字符串、對(duì)象、數(shù)組或邏輯true和false。

舉例:

<!DOCTYPE html>

<html xmlns="//www.w3.org/1999/xhtml">

<head>

<title></title>

<script type="text/javascript">

vararr =

[

{

"name":"小明",

"age":23,

"gender":"男"

},

{

"name":"小紅",

"age":21,

"gender":"女"

}

]

//讀取JSON數(shù)據(jù)

document.write("第一個(gè)學(xué)生的名字是:"+arr[0].name+"<br>");

document.write("第二個(gè)學(xué)生的性別是:"+arr[1].gender+"<br>");

</script>

</head>

<body>

</body>

</html>

在瀏覽器預(yù)覽效果如下:

三、普通字符串、JSON字符串和JSON對(duì)象

初學(xué)者經(jīng)常有一個(gè)困惑,就是分不清普通字符串、JSON字符串和JSON對(duì)象。其實(shí)這3者是非常容易區(qū)分的。

1、普通字符串

字符串嘛,大家都知道是使用單引號(hào)或雙引號(hào)括起來的一串字符。

舉例:

varstr = "綠葉學(xué)習(xí)網(wǎng)json教程";

2、JSON對(duì)象

JSON對(duì)象我們?cè)?ldquo;JSON對(duì)象結(jié)構(gòu)”這一節(jié)已經(jīng)詳細(xì)為大家講解了。JSON對(duì)象,指的是符合JSON格式要求的JavaScript對(duì)象。

舉例:

varjsonObj = {"name":"helicopter","age":23,"gender":"男"};

3、JSON字符串

JSON字符串,指的是符合“JSON格式”的字符串。

JSON字符串要求兩點(diǎn):

(1)必須是字符串,也就是要用單引號(hào)或雙引號(hào)括起來;

(2)必須符合“JSON”格式。

舉例:

varjsonStr = '{"name": "helicopter", "age":23, "gender": "男"}';

JSON字符串說白了就是在JSON對(duì)象外面加一對(duì)單引號(hào)。

大家好好對(duì)比一下,就知道普通字符串、JSON對(duì)象和JSON字符串的區(qū)別了。

四、Linux JSON庫的安裝

1.下載json-c的源碼

JSON下載地址:https://github.com/json-c/json-c/wiki

2.解壓json-c的源碼包

tar -xvf json-c-0.10.tar.gz

3.配置json-c的源碼包

(1)在x86平臺(tái)配置

./configure --prefix=/usr

(2)在ARM平臺(tái)配置

./configure --prefix=安裝路徑 --host=交叉開發(fā)工具鏈前綴

例如安裝路徑為"/home/linux/json/install" 交叉開發(fā)工具鏈前綴為arm-none-linux-gnueabi-,則指定configuer參數(shù)如下:

./configure --prefix=/home/linux/json/install --host=arm-none-linux-gnueabi

4.編譯

make

5.安裝

make install

注意:

在x86平臺(tái)安裝的時(shí)候,由于我們指定的/usr目錄,普通用戶對(duì)于這個(gè)目錄是沒有寫權(quán)限的,所以在安裝的時(shí)候會(huì)提示"Permission denied",解決方法是以超級(jí)用戶身份執(zhí)行。

五、Linux JSON庫的使用

注意:

在編譯的時(shí)候,會(huì)提示"/usr/include/json/json.h:27:34: fatal error: json_object_iterator.h: No such file or directory",原因是我們?cè)贘SON庫安裝的時(shí)候,沒有將json源碼下的" json_object_iterator.h"頭文件安裝到/usr/include/json目錄下,解決的方法很簡單,我們只需要將json源碼樹下的" json_object_iterator.h"拷貝到/usr/include/json目錄下就可以了。

上一篇:RTLinux的介紹

下一篇:Linux設(shè)備樹詳解

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5京公海網(wǎng)安備11010802025203號(hào)

回到頂部

主站蜘蛛池模板: 午夜福利精品导航凹凸 | 又大又粗又爽又黄的少妇 | 精品亚洲国产成人 | 亚洲婷婷六月的婷婷 | 国产亚洲精品久久久麻豆男与男 | 欧美丰满熟妇乱XXXXX视频 | 日韩欧美亚洲中文乱码 | 国产乱码精品一品二品 | 51vv社区视频在线视频观看 | 国产做爰xxx18在线观看网站 | 成年人免费在线看惊悚片动作片 | 皇上从小侵犯双性太子NP高H | 中文字幕第23页 | 久久婷婷五月综合色国产免费观看 | 凯蒂夫人在线播放 | 爱啪啪av导航 | 欧美国产日产一区二区 | 含羞草亚洲AV无码久久精品 | 欧美三级午夜理伦三级 | 强奷漂亮雪白丰满少妇av | 啦啦啦手机视频高清观看免费 | 精品人妻一区二区三区四区在线 | 欧美三级午夜理伦三级 | 老师你下面太紧进不去动态图 | 嫩草影视入口 | 中国美女a级毛片 | 亚洲Av无码专区国产乱码DVD | 伊人精品久久久大香线蕉 | JLZZJLZZ亚洲乱熟在线播放 | 欧美老妇疯狂xxxxbbbb | 野花社区www高清图片 | 中文字幕第15页 | 久久久久久a女人 | 亚洲熟妇中文字幕日产无码 | 四虎影视网址 | 香蕉久久精品日日躁夜夜躁夏 | 日本不卡新2区 | 亚洲国产AV玩弄放荡人妇系列 | 强壮的公弄得高潮HD | 果冻传媒视频一二在线观看 | 第一福利导航站 |