日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSON的C语言编解码器——cJSON和json-c

發布時間:2024/9/5 javascript 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSON的C语言编解码器——cJSON和json-c 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://blog.csdn.net/wadefelix/article/details/6965327


JSON是一種比XML更輕量級的數據交換格式,關于JSON的基礎知識,參考 JSON?http://www.json.org/json-zh.html

看看你使用的語言中是否已有JSON支持,也參考JSON?http://www.json.org/json-zh.html


cJSON是C語言中的一個JSON編解碼器,非常輕量級,C文件只有500多行,速度也非常理想。項目主頁:cJSON | Free software downloads at SourceForge.nethttp://sourceforge.net/projects/cjson/

cJSON也存在幾個弱點:

1不支持[1,2,3,]和{"one":1,}最后多余的那個逗號。這是C語言就開始支持的,JSON RFC文檔中沒有對此說明,只能說這是擴展功能吧。

2 不支持/*注釋*/,和//單行注釋。這也是擴展功能。C/C++/JAVA/JavaScript都支持注釋,所以我也希望在json文件中寫點注釋。

3 使用了個全局變量指示出錯位置。這個在多線程時就有問題啦。

4 沒有封裝文件操作,用戶需要自己讀寫文件。

雖然功能不是非常強大(上面124都是非常容易添加少數幾行代碼都可以支持的),但cJSON的小身板和速度是最值得贊賞的。其代碼被非常好地維護著,結構也簡單易懂,可以作為一個非常好的C語言項目進行學習(支持上面12兩個功能可以作為學習后的作業)。其解析核心是通過遞歸函數完成的,不過放心它的每個函數都非常非常節省資源。

如下圖是[1,"Two",{"Three":3,"3":True}]這個JSON對象用cJSON解析后內存中的數據結構。




json-c是另外一個C語言項目,提供了所有的功能,甚至支持單引號字符串,但是結構較之cJSON更為復雜。解析字符串的核心函數沒有使用遞歸實現,最多支持32層數組或對象嵌套(用到這么多層的JSON對象該有多復雜啊???),解析時使用了一堆狀態在跳來跳去,加上層級跳轉,閱讀時容易發暈。

json-c項目主頁:jehiah/json-c - GitHub?https://github.com/jehiah/json-c



AutoIt語言的json支持 - 流浪者幸運(livemylife.cn) - 博客頻道 - CSDN.NEThttp://blog.csdn.net/wadefelix/article/details/6220421



總結

以上是生活随笔為你收集整理的JSON的C语言编解码器——cJSON和json-c的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。