一:配置
1,下载:json-c-0.9.tar.gz
2,解压:tar zxvf json-c-0.9.tar.gz
3,切换到json-c 文件夹,执行以下命令
cd json-c-0.9/
# ./configure
# make
# make install
在非root用户下,make install 出错。所以我切换到root用户。
4,查看是否编译正确
在目录/usr/local/include/json/下有如下文件:
json.h
bits.h
debug.h
linkhash.h
arraylist.h
printbuf.h
json_util.h
json_object.h
json_object_private.h
json_tokener.h
在目录/usr/local/lib/下有如下文件:
libjson.so.0.0.1
libjson.so.0 -> libjson.so.0.0.1
libjson.so -> libjson.so.0.0.1
libjson.la
libjson.a
json.h
bits.h
debug.h
linkhash.h
arraylist.h
printbuf.h
json_util.h
json_object.h
json_object_private.h
json_tokener.h
在目录/usr/local/lib/下有如下文件:
libjson.so.0.0.1
libjson.so.0 -> libjson.so.0.0.1
libjson.so -> libjson.so.0.0.1
libjson.la
libjson.a
5,在/etc/ld.so.conf文件中添加此lib目录
include /usr/local/lib
6,执行ldconfig或/sbin/ldconfig 或者更改环境变量export LD_LIBRARY_PATH = /usr/local/lib
二:编译
testJson.cpp
#include <iostream>
#include <string>
#include "json.h"
using namespace :: std;
int main(int argc, char **argv)
{
json_object *new_obj;
string str="{\"Lon\":\"121.42205\",\"Lat\":\"31.32118\"}";
const char *p=str.c_str();
new_obj = json_tokener_parse(p);
cout<<json_tokener_parse(p)<<endl;
if (is_error(new_obj)) {
if (new_obj==null) {
cout<<"No"<<endl;
return 0;
} else {
cout<<"Yes"<<endl;
return 1;
}return 0;
}
编译
g++ -ljson -I/usr/local/include/json/ -L/usr/local/lib/ testJson.cpp