QT 使用jsoncpp
QT 使用jsoncpp编译jsoncpp 编译前先安装好python,scons,解压jsoncpp到目录e:jsconcpp,查看目录下的readme,有关于编译的说明的,根据说明做相应操作就可以。 打开Visual Studio 2005 Command Prompt命令行,输入以下命令进行编译 sconsplatform =msvc80
编译完成后在子目录libsmsvc80就生成了json_vc80_libmt.lib,这就是此库的静态版本了。想动态编译,但不知道怎么搞,readme没有说明。
在QT中使用jsconcpp 更改pro项目文件 对项目进行更改,引用相应的库和头文件路径 INCLUDEPATH+=e:/jsconcpp/jsoncpp-src-0.6.0-rc2/include/json LIBS+=-Le:/jsconcpp/jsoncpp-src-0.6.0-rc2/libs/msvc80-ljson_vc80_libmt QMAKE_CFLAGS_RELEASE=-O2/MT QMAKE_CFLAGS_DEBUG=-Zi/MT QMAKE_CXXFLAGS_RELEASE=$$QMAKE_CFLAGS_RELEASE QMAKE_CXXFLAGS_DEBUG=$$QMAKE_CFLAGS_DEBUG Jsoncpp使用非常简单,就汲到几个类 Json::Value //代表每个值,可以转换成不同的数据类型 Json::Reader //对json字符串或者文件进行反序列化 Json::FastWriter //序列化json字符串,输出的是多字节内容,如果需要utf8格式,需要自己对输出的字符串进行转换 Jsoncpp序列例子 voidwriteDemo() {
Json::Valueroot; Json::ValuearrayObj; Json::Valueitem; Json::FastWriterwriter; for(inti=0;i<10;i++) { item["key"]=i; arrayObj.append(item);//数组项添加 } root["key1"]="value1"; root["key2"]="value2"; root["key3"]=0x100; root["key4"]=true; root["key5"]="中国人"; item=root["key5"]; root["array"]=arrayObj; std::cout<<root.toStyledString(); std::cout<<writer.write(root); }
Jsconcpp反序列化例子 voidreadDemo() {
std::fstreamfile; file.open("test2.json");//文件的字符集为utf8 Json::Readerreader; Json::Valueroot; Json::Valueitem; reader.parse(file,root); item=root["key5"]; //key5的内容为"中国人" //读写utf8的内容 QStringstr=QString::fromUtf8(item.asString().c_str()); std::cout<<str.toStdString()<<endl;
}
参考 JsonCpp Documentationhttp://jsoncpp.sourceforge.net/index.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- C#中调用DLL时未能加载文件或程序集错误的处理方法(详解)
- opengl之vsh、fsh简易介绍+cocos2dx 3.0 shader 变灰
- regex – 一个正则表达式,可以拆分具有相同嵌套括号的字符串
- Flex 与Servlet交互(通过request传递值)
- net.sf.json.JSONException: java.lang.reflect.Invocation
- xml – 使用XSLT删除重复的元素
- ruby – 如何在Rails 3中实现安全性?
- c# – 在Mono for ARM上运行简单的winforms应用程序
- oracle统计时间段内每一天的数据(推荐)
- React native项目体验