http://oss.metaparadigm.com/json-c/
tar -zxvf json-c-0.9.tar.gz
./configure --prefix=/usr/local/json-c-0.9(没有prefix选项,默认的是/usr/local/lib/)
make && make install
windows编译冲突问题
json_object.h 32 行
//typedef int boolean; modify by shenyu
typedef unsigned char boolean;
error while loading shared libraries: libjson.so.0:
root
vi /etc/ld.so.conf 最后添加一行
/usr/local/lib/libjson.so.0
jsoncpp
资源下载:
http://sourceforge.net/projects/jsoncpp/files/latest/download?source=files
tar -zxvf jsoncpp-src-0.5.0.tar.gz
linux 下安装需要先装 scons
http://www.scons.org
http://sourceforge.net/projects/scons/files/scons/2.1.0/scons-2.1.0.tar.gz/download
解压后:
cd /home/qingtian/scons-2.1.0
python setup.py install
python setup.py install --standard-lib 安装到python标准目录
cd /home/qingtian/jsoncpp-src-0.5.0
python /home/qingtian/scons-2.1.0/script/scons platform=linux-gcc
python /usr/local/app/qingtian/scons-2.1.0/script/scons platform=linux-gcc
生成文件目录:
/home/qingtian/jsoncpp-src-0.5.0/include
/home/qingtian/jsoncpp-src-0.5.0/libs/linux-gcc-4.1.2
cp /home/qingtian/jsoncpp-src-0.5.0 /usr/local/jsoncpp -r
cp /home/leoxshen/jsoncpp-src-0.5.0 /usr/local/jsoncpp -r
cp /usr/local/app/leoxshen/jsoncpp-src-0.5.0 /usr/local/jsoncpp -r
编译代码时引用即可
#错误处理
mqq@38_183:~/qingtian/jsoncpp-src-0.5.0> python /usr/local/app/qingtian/scons-2.1.0/script/scons platform=linux-gcc
Traceback (most recent call last):
File "/usr/local/app/qingtian/scons-2.1.0/script/scons", line 187, in <module>
import SCons.Script
ImportError: No module named SCons.Script
如果安装不上,需要root权限,执行命令
python setup.py install --standard-lib 安装到python标准目录
------------------------------------------------------------------------------------ test 程序--------------------------------------------------------------------
#include <iostream>
#include <string>
#include "json/json.h"
using namespace std;
void json_writer()
{
Json::Value rootA;
Json::Value root;
Json::FastWriter fast_writer;
root["REGION_ID"] = "600901";
root["DATA_TOTAL_NUM"] = 456278;
rootA["KEY"] = "1";
rootA["NUM"] = "9";
rootA["entry"] = root;
std::cout << fast_writer.write(root) << std::endl;
std::cout << fast_writer.write(rootA) << std::endl;
Json::Value jsonArry;
jsonArry.append(root);
jsonArry.append(root);
jsonArry.append(rootA);
std::cout << fast_writer.write(jsonArry) << std::endl;
}
void json_reader()
{
string strJson = "{\"key1\":\"value1\",\"array\":[{\"key2\":\"value2\",\"key3\":\"aa\"},{\"key2\":\"value3\",\"key3\":\"bb\"},{\"key2\":\"value4\",\"key3\":\"cc\"}]}";
Json::Reader reader;
Json::Value val;
if(!reader.parse(strJson,val))
return ;
std::string str = val["key1"].asString();
cout<<"str = "<< str<<endl;
std::string str2 = val["key11"].asString();
cout<<"str2 = "<< str2<<endl;
int a = val["key13"].asInt();
cout<<"a = "<< a<<endl;
Json::Value obj_array = val["array"];
for (int i = 0; i< obj_array.size(); i++)
{
std::cout << obj_array[i]["key2"].asString()<<"|"<< obj_array[i]["key3"].asString() << std::endl;
}
}
int main(void)
{
Json::Value root;
Json::FastWriter fast_writer;
root["REGION_ID"] = "600901";
root["DATA_TOTAL_NUM"] = "456278";
std::cout << fast_writer.write(root) << std::endl; */
json_writer();
json_reader();
//char * p = ( char *) malloc(10);
return 0;
}