隨著物聯網的發展,越來越多的物需要連線網路上傳資料,伺服器同時需要對接多種型別的終端,協議的多樣性是加大伺服器端複雜度的乙個重要方面,同時也加大了維護複雜度,經過權衡終端最終採用了json資料格式。
使用的理由:
1、標準 主流的語言都是支援json,方便 終端和伺服器的解析
2、擴充套件性好
3、易於維護
缺點:比二進位制的資料型別占用的頻寬要大
使用方法:
官方專案中有測試包 及使用教程
2、將cjson包 包含到專案中 #include "cjson.h"
3、注意cjson 原始檔中的 malloc 和free方法的替換
void cjson_inithooks(cjson_hooks* hooks)
cjson_malloc = (hooks->malloc_fn)?hooks->malloc_fn:vm_malloc;
cjson_free = (hooks->free_fn)?hooks->free_fn:vm_free;
我使用的是 vm_malloc 和 vm_free 所以替換成我自己的方法了
4、json轉字串後,在字串使用完之後要釋放 因為char* 是使用malloc建立的記憶體空間
out = cjson_print(root); 或 out = cjson_printunformatted(root); 在out使用之後 要手動釋放 否則會導致記憶體洩露
5、同理,字串轉json之後 在json使用完後要 呼叫 cjson_delete()釋放json物件,因為json數是使用malloc建立的記憶體空間 如:
json = cjson_parse((char*)readbuf); 使用後要 cjson_delete(json );
6、常用的函式在網上都能找到
建立 和 取值
c語言 如何在專案中使用陣列
用乙個最簡單理解的專案來教大家怎麼用陣列吧,就寫乙個錄入並檢視十名同學的成績好了。首先建立乙個陣列,然後迴圈十次每次錄入一名同學成績,十次迴圈結束同學的成績也就全部錄入完畢 include int main printf 檢視十名學生成績 n for int i 0 i 10 i return0 注...
專案中使用ibatis方法
通過daomanagerbuilder載入dao.xml檔案獲取daomanager物件 dao.xml 配置如下 sql map config 配置如下 匯入database.properties檔案 設定資料庫連線屬性 匯入每乙個資料庫實體檔案 檔案指定實體類和資料表對應關係 account.x...
在專案中使用ExtJS
今天extjs官網發布了extjs最新正式版4.2.1。extjs為開發者在開發富客戶的b s應用中提供豐富的ui元件,具有統一的主題,便於快速開發,提高效率。但顯然它並不適合互聯 的開發。builds 壓縮後的extjs 體積更小,更快 docs 開發文件 examples 官方演示示例 loca...