由於工作中需要用到json資料,所以解析json資料就成了乙個非常重要的工作內容。
其實用c++解析資料是很繁雜的任務,涉及到很多的資料處理和資料安全問題。好在網上提供了很多的json解析庫,其中不乏很優秀的,出於效率,還是使用這些第三方的庫比較好。我使用的是jsoncpp,這是乙個開源的c++的json解析庫,我將寫兩篇博文來介紹如何使用jsoncpp,而本文將介紹jsoncpp的新增。
2、開啟makefiles資料夾,裡面是jsoncpp和兩個test的工程,開啟工程(我使用的編譯環境是vs2008,原檔案應該是vs2005下開發的,無礙,直接轉換下就好了),紅色方框部分就是jsoncpp的專案
3、編譯jsoncpp專案,然後在程式目錄的build資料夾下可以找到編譯好的lib檔案,debug和release下的檔名不同,debug下是json_vc71_libmtd.lib,release下是json_vc71_libmt.lib。
4、想要在我們的專案中加入jsoncpp庫也很簡單,只要把jsoncpp的專案的.h檔案和.lib檔案加入到我們的專案中就可以了,注意引用目錄,然後編譯看看有沒有錯誤。
5、debug模式下編譯,應該是沒有錯誤的,如果出現鏈結錯誤或者是找不到檔案,請檢視檔案路徑設定對不對。需要注意的是release模式下編譯,有可能會出現fatal error c1083: 無法開啟編譯器生成的檔案:「../../build/vs71/release/lib_json\json_writer.asm」: no such file or directory ,我也出現了這個錯誤。後來在網上查詢原因,好像是jsoncpp的專案編譯設定的問題。需要在jsoncpp的專案設定中做如下修改:
6、替換新編譯完成的lib檔案,再編譯,就可以通過了,呵呵。
當然,如果你直接把jsoncpp的專案檔案全部拷貝到自己的專案中,也是可以的,但是出於專案管理考慮,還是使用lib比較好。
cJson例項解析
2 只需將cjson.h 和 cjson.c 檔案拷貝到所需使用的目錄即可使用 例項 name tom age 18,man true 注 1 key永遠是string型別 2 這裡的18是雙精度,在json裡都用number來表示 建立cjson物件以及解包 1 建立跟節點 root cjson ...
cJSON對json資料的解析
目標 對下面這種結構的json資料解析 處理步驟 1.將json資料儲存在a.txt內 2.用fopen對資料檔案進行讀取 3.將讀取出的資料流寫入到乙個字串陣列中 4.用cjson parse將字串陣列轉換為json資料物件root 5.對root由外層向內層解析 如下 include inclu...
cjson構建 cJSON的構造和解析
對於cjson的使用,我主要是用來模擬遠端伺服器端返回的乙個json型別的目錄結構,客戶端進行獲取並進行解析,把解析出來的目錄按照原本的結構顯示在本地。cjson是乙個超輕巧,攜帶方便,單檔案,簡單的可以作為ansi c標準的json解析器。cjson結構體 typedef struct cjson...