導航:首頁 > 源碼編譯 > jsoncpp編譯

jsoncpp編譯

發布時間:2022-02-22 21:57:49

❶ 往c++項目里添加jsoncpp

http://www.codeproject.com/Articles/20027/JSON-Spirit-A-C-JSON-Parser-Generator-Implemented
我用的是這個,前提你要知道Boost,都是要自己編譯的,因為有些格式或設定跟你程序不一致,會有問題!

❷ jsoncpp閱讀文件不正確問題,怎麼解決

TO awei114: 我編寫WinCE應用程序lib直接加工程文件夾吧我其都加需要設置路徑啊直接加入文件json.h #prama comment(lib,json)

已搞定能夠編譯鏈接通謝謝各位關注接要往更深處走

❸ 怎麼在VS2008里使用jsoncpp

C++要使用JSON來解析數據,一般採用jsoncpp.

下載jsoncpp後,按ReadMe文檔的說法是要先安裝的,但是安裝比較麻煩。然而事實上,我們並不需要安裝,就可以直接使用。

方法一:直接拷貝源文件。這個方法比較簡單,但不推薦,因為不便於項目管理。

  1. VS2008里新建一個空的控制台程序(用作測試jsoncpp是否可用),名為: TestJSON

  2. 解壓下載好的文件:jsoncpp-src-0.5.0.tar.gz

  3. 將 jsoncpp-src-0.5.0include 目錄下的json文件夾拷貝至 TestJSON 工程目錄下

  4. 將jsoncpp-src-0.5.0srclib_json 目錄下的所有.h, .cpp文件全部拷貝至 TestJSON 工程目錄下

  5. 在VS2008里引入工程目錄下剛剛從jsoncpp-src-0.5.0 導入的文件,如圖1

  6. 在VS2008里新建main.cpp來測試jsoncpp是否可用。代碼見文章末尾main.cpp


方法二:使用靜態鏈接庫

  1. VS2008里新建一個空的控制台程序(用作測試jsoncpp是否可用),名為: TestJSON

  2. 解壓下載好的文件:jsoncpp-src-0.5.0.tar.gz

  3. 利用VS2008打開jsoncpp-src-0.5.0makefilesvs71目錄下的jsoncpp.sln,會出現三個Project:jsontest,lib_json,test_lib_json

  4. 在lib_json上 右擊-->Properties-->Configuration Properties-->C/C++-->Code Generation,注意右側的Runtime Library的內容,如圖2,看完箭頭所指的東西就可以點確定,關掉屬性頁。

  5. 編譯lib_json,顯示編譯成功後,在jsoncpp-src-0.5.0uildvs71debuglib_json目錄下會生成一個json_vc71_libmtd.lib,將這個lib拷貝至TestJSON工程目錄下。

  6. 將jsoncpp-src-0.5.0includejson目錄下的所有.h文件拷貝至TestJSON工程目錄下,並在工程Header Files引入.

  7. 將方法一里的main.cpp添加到工程中,並在工程名上 右擊-->Properties-->Configuration Properties-->C/C++-->Code Generation, 將Runtime Library改成圖2箭頭所示內容。

  8. 在工程名上右擊-->Properties-->Configuration Properties-->Linker-->Input, 在Additional Dependencies里填寫json_vc71_libmtd.lib,然後確定,編譯就行了。


/* 測試jsoncpp的使用
*/

#include<iostream>
#include"json/json.h"

usingnamespacestd;
usingnamespaceJson;//json的命名空間

intmain()
{
/*JSONDATAasfollowing://一個json類型的數據
{
"test:5
}*/

stringtest="{"test":5}";//保存上文的json類型的數據

//以下涉及json的操作,將在後文中涉及,此處為簡單應用,不解釋,你懂的
Readerreader;
Valuevalue;

if(reader.parse(test,value))
{
inti=0;

if(!value["test"].isNull())
{
i=value["test"].asInt();
cout<<i<<endl;
}
}

return0;
}

❹ jsoncpp和rapidjson哪個好用

易用性:rapidjson是全頭文件包含的,jsoncpp需要你內置編譯或編譯成庫;但rapidjson的一些介面不全,只提供了一層一層的這種解析方式,不能將某一層一次讀出來,實際用的時候,要簡單封裝一下,不然代碼量會很大;
性能:rapidjson的性能是現在所有的c++ json解析庫裡面最高的,沒有之一;
容錯性:rapidjson只支持標準的 json 格式,很多人以為這個是缺點,我覺得這個是優點,大家都按照標准做,這是成本最低的;

rapidjson之前是託管在Googe Code上的,現在已遷移到GitHub,地址:miloyip/rapidjson · GitHub

❺ JSON中數組該如何解析呢c++中使用jsoncpp

JSON是一個輕量級的數據定義格式,比起XML易學易用,而擴展功能不比XML差多少,用之進行數據交換是一個很好的選擇
JSON的全稱為:javaScript Object Notation ,顧名思義,JSON是用於標記javascript對象的,詳情參考http://www.json.org/。
本文選擇第三方庫JsonCpp來解析json,JsonCpp是比較出名的c++解析庫,在json官網也是首推的。
JsonCpp簡介
JsonCpp主要包含三種類型的class:Value Reader Writer。
jsoncpp中所有對象、類名都在namespace json中,包含json.h即可。
注意: Json::Value只能處理ANSI類型的字元串,如果C++程序使用Unicode編碼的,最好加一個Adapt類來適配。
下載和編譯
本文運行環境是: Redhat 5.5 + g++version 4.6.1 + GNU Make 3.81 + jsoncpp-0.5.0
下載地址是:http://sourceforge.net/projects/jsoncpp/
解壓之後得到jsoncpp-src-0.5.0文件夾,我們只需要jsoncpp的頭文件和cpp文件,其中jsonscpp的頭文件位於jsoncpp-src-0.5.0includejson,jsoncpp的cpp文件位於jsoncpp-src-0.5.0srclib_json。
這里我列出我們的工作目錄:
jsoncpp/ //工作目錄
|-- include //頭文件根目錄
| |-- json //json頭文件,對應jsoncpp-src-0.5.0includejson
|-- src //cpp源碼文件根目錄
|-- json //jsoncpp源碼文件,對應jsoncpp-src-0.5.0srclib_json
|-- main.cpp //我們的主函數,調用jsoncpp的示例代碼
|-- makefile //makefile,不用我們多說了吧,不懂請看我博客的makefile最佳實踐
反序列化Json對象
假設有一個json對象如下:

{ "name": "json″, "array": [ { "cpp": "jsoncpp" }, { "java": "jsoninjava" }, { "php": "support" } ] }

我們要實現這個json的反序列號代碼如下:
voidreadJson() { usingnamespacestd; std::stringstrValue = "{\"name\":\"json\",\"array\":[{\"cpp\":\"jsoncpp\"},{\"java\":\"jsoninjava\"},{\"php\":\"support\"}]}"; Json::Reader reader; Json::Value value; if(reader.parse(strValue, value)) { std::stringout= value["name"].asString(); std::cout <<out<<std::endl; constJson::Value arrayObj = value["array"]; for(unsigned inti = 0;i <arrayObj.size(); i++) { if(!arrayObj[i].isMember("cpp")) continue; out= arrayObj[i]["cpp"].asString(); std::cout <<out; if(i != (arrayObj.size() - 1)) std::cout <<std::endl; } } }

序列化Json對象
voidwriteJson() { usingnamespacestd; Json::Value root; Json::Value arrayObj; Json::Value item; item["cpp"] = "jsoncpp"; item["java"] = "jsoninjava"; item["php"] = "support"; arrayObj.append(item); root["name"] = "json"; root["array"] = arrayObj; root.toStyledString(); std::stringout= root.toStyledString(); std::cout <<out<<std::endl; }

❻ windows 平台怎麼編譯使用jsoncpp

其實最好還是使用vs,c語言不適合做大型的應用程序,c程序適合做單片機程序和驅動程序。windows程序最好還是使用vc6.0,網頁程序使用vs2008,單片機和驅動使用匯編語言。
Visual C++的Windows窗體應用程序可以成.exe文件,也就是應用程序,開發軟體可以創建這個項目;如果想寫C語言,Visual C++裡面自帶有編寫.cpp文件的C語言環境!

❼ jsoncpp問題

放到你的工程里,相當於你的工程額外多了一個cpp文件,和兩個h文件,如果你的工程僅有一個main.cpp,那就是兩個cpp和兩個h文件,組成了你這個工程。

❽ 怎麼將jsoncpp編譯成lib文件

比如你在VC6.0有一個工程project,裡面有以下3個文件

/*1*/fun.h
#ifndef FUN_H
#define FUN_H
void fun();
#endif

/*2*/fun.c
#include <stdio.h>
#include "fun.h"
void fun()
{
printf("fun()");
}

/*3*/main.c
#include <stdio.h>
#include "fun.h"
int main()
{
fun();
getchar();
}

菜單project->setting->link
把輸出文件名「Debug/project.exe」改成「Debug/project.lib」,確定
按F7組建project.lib
這樣在你的project\Debug文件夾下就可以找到project.lib了

閱讀全文

與jsoncpp編譯相關的資料

熱點內容
雲伺服器買了干點什麼 瀏覽:622
程序員桌面管理軟體 瀏覽:989
綠洲平台app做任務在哪裡 瀏覽:688
文檔中加密的格式 瀏覽:518
androidgallery效果 瀏覽:256
make編譯顯示無法分配內存 瀏覽:64
可編程式機械定時器 瀏覽:115
浙江增值稅發票安全伺服器地址 瀏覽:572
河南農信app上身份證更新在哪裡 瀏覽:735
戰地1被伺服器ban了怎麼辦 瀏覽:666
shell暫停命令 瀏覽:726
雲伺服器ecs更換可用區 瀏覽:325
菜鳥裹裹的加密有什麼用 瀏覽:187
農商銀行app賬號是什麼格式 瀏覽:979
liunx安裝androidsdk 瀏覽:595
顯卡雲伺服器對比知乎 瀏覽:179
怎麼判斷雨棚旁柱子是否加密 瀏覽:398
android掛號源碼 瀏覽:399
買車有什麼app可以查看車型 瀏覽:1002
如何保證公司伺服器安全 瀏覽:587