1、Centos下 jsoncpp的安裝步驟
第一步:下載下傳jsoncpp
0.5.0版本位址:
https://sourceforge.net/projects/jsoncpp/個人感覺早期版本0.5.0更穩定些。
官網位址:
https://github.com/open-source-parsers/jsoncpp第二步:安裝scons
編譯jsoncpp需要使用scons。
下載下傳scons位址:
https://sourceforge.net/projects/scons/files/scons/2.1.0/現在已經有新版本,但2.1.0測試相對好用。
第三步:編譯scons
tar -zvxf scons-2.1.0.tar.gz
1)在/etc/profile 設定環境變量
export MYSCONS=解壓的路徑
export SCONS_LIB_DIR=$MYSCONS/engine
注意:這兩個環境變量至關重要。
運作: source /etc/profile 使設定的新環境變量生效。
注: scons是一個Python寫的自動化建構工具,從建構這個角度說,它跟GNU make是同一類的工具。
它是一種改進,并跨平台的gnu make替代工具,其內建功能類似于autoconf/automake 。
scons是一個更簡便,更可靠,更高效的編譯軟體。
第四步:解壓jsoncpp
tar -zvxf jsoncpp-src-0.5.0.tar.gz
第五步:切換到jsoncpp的解壓目錄,執行指令
python $MYSCONS/script/scons platform=linux-gcc
我的路徑為:/home/yang/mysql_y/jsoncpp-src-0.5.0
執行:
第六步:生成靜态和動态庫檔案
在jsoncpp-src-0.5.0/libs/linux-gcc-4.4.7目錄下,如下所示:
[root@yang linux-gcc-4.4.7]# pwd
/home/yang/mysql_ycy/jsoncpp-src-0.5.0/libs/linux-gcc-4.4.7
[root@lyang linux-gcc-4.4.7]# ll
-rw-r–r– 1 root root 618712 9月 9 13:43 libjson_linux-gcc-4.4.7_libmt.a
-rwxr-xr-x 1 root root 359045 9月 9 13:43 libjson_linux-gcc-4.4.7_libmt.so
第七步:
可将 libjson_linux-gcc-4.4.7_libmt.a 和 libjson_linux-gcc-4.4.7_libmt.so 拷貝到/usr/lib下,
本文選擇了靜态庫庫檔案,将解壓後的檔案夾下的INCLUDE中的頭檔案拷貝到/usr/include/json下。
2、Demo程式測試驗證功能是否ok。
有如下最終結果輸出的為ok!
[root@yang json_test0922]# cat json_test.cpp
#include <json/json.h>
#include <string>
#include <iostream>
using namespace std;
int main()
{
string test = "{\"encrptpripid\": \"f2cbfd07bb6b784f0fb5a52e17e1b3930324e1ef9065338f4aa1\", \
\"entname\": \"xx顯華化工科技有限公司\",\
\"enttype\": \"1151\",\
\"enttypename\": \"法定代表人:\",\
\"estdate\": \"2003年06月19日\",\
\"lerep\": \"豐佩川\",\
\"pripid\": \"106350010220030687030\",\
\"regno\": \"911706007526952553\",\
\"regorgname\": \"XX經濟技術開發區市場監督管理局\",\
\"uniscid\":\"91106007526952553\"}";
Json::Reader reader;
Json::Value value;
if(reader.parse(test,value))
if(!value["encrptpripid"].isNull())
{
cout << value["entname"].asString() << endl;
cout << value["regorgname"].asString()<< endl;
}
}
return 0;
[root@yang json_test0922]# cat makefile
json_test:json_test.cpp
g++ -o json_test json_test.cpp /usr/lib/libjson_linux-gcc-4.4.7_libmt.a
[root@yang json_test0922]# ./json_test
xx顯華化工科技有限公司
XX經濟技術開發區市場監督管理局
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
3、常見錯誤:
錯誤1:mysql_parse: src/lib_json/json_value.cpp:1025: Json::Value& Json::Value::resolveReference(const char*, bool): Assertion `type_ == nullValue || type_ == objectValue’ failed.
解決方案:json的内容的前面的”[” 以及後面的”]”去掉即可。