QT 使用jsoncpp
QT 使用jsoncpp
编译jsoncpp
编译前先安装好python,scons,解压jsoncpp到目录e:\jsconcpp,查看目录下的readme,有关于编译的说明的,根据说明做相应操作就可以。
打开Visual Studio 2005 Command Prompt 命令行,输入以下命令进行编译
scons platform =msvc80
编译完成后在子目录libs\msvc80就生成了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序列例子
void writeDemo( )
{
Json::Value root;
Json::Value arrayObj;
Json::Value item;
Json::FastWriter writer;
for (int i=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反序列化例子
void readDemo()
{
std::fstream file;
file.open("test2.json"); //文件的字符集为utf8
Json::Reader reader;
Json::Value root;
Json::Value item;
reader.parse(file,root);
item =root["key5"]; //key5的内容为"中国人"
//读写utf8的内容
QString str=QString::fromUtf8(item.asString().c_str());
std::cout << str.toStdString()<<endl;
}
参考
JsonCpp Documentation
QT 使用jsoncpp的更多相关文章
- Qt jsoncpp 对象拷贝、删除、函数调用 demo
/*************************************************************************************************** ...
- JsonCpp——json文件的解析
定义: 官网: http://json.org/ 在线解析器:http://json.cn/ http://www.bejson.com/ JSON(JavaScript Object Notatio ...
- Qt 4.8.5 jsoncpp lib
Qt jsoncpp lib 一.参考文档: . QtCreator动态编译jsoncpp完美支持x86和arm平台 http://www.linuxidc.com/Linux/2012-02/536 ...
- Qt学习日记篇-Qt中使用Curl和jsonCpp
1.Qt中安装并使用jsonCPP库 1.1 官网下载.https://sourceforge.net/projects/jsoncpp/ 解压文件得到 jsoncpp-src-0.5.0 文 ...
- QtCreator动态编译jsoncpp完美支持x86和arm平台
如果是做嵌入式开发. 在Qt下支持JSon最好的办法,可能不是采用qjson这个库.QJson这个库的实例只提供了x86环境下的编译方法. Installing QJson-------------- ...
- Qt之JSON生成与解析
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - December ...
- 【转载】Qt之JSON生成与解析
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - December ...
- ubuntu安装Qt
一.安装 卸载旧版本Qt,找到安装目录,例如:/home/likewei/Qt5.11.2,终端输入命令进入该目录,输入命令:./MaintenanceTool 进入图形画面卸载就行了 1. ...
- jsoncpp 0.5 ARM移植
1.下载jsonapp 0.5 https://github.com/open-source-parsers/jsoncpp 2.编译 platform 没有包含 arm 平台,需要把源码提取出来,独 ...
随机推荐
- tensorflow2
# step1 加载包import tensorflow as tf import numpy as np # step2 输入:随机产生数据 # Create 100 phony x, y data ...
- xmind的第六天
- POJ 1006 中国剩余定理
#include <cstdio> int main() { // freopen("in.txt","r",stdin); ; while(sca ...
- CE选择目录对话框(转)
本文转载于http://blog.163.com/zhaojun_xf/blog/static/30050580201132221118479/ 在Wince下要打开目录对话框需要调用函数SHBrow ...
- Spring概况
1. Spring是什么 Spring是一个开源框架,为了解决企业应用开发的复杂性而创建的,但现在已经不止于企业应用. 是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. ——从大小与开 ...
- open Live Writer配置步骤
一.关于 Open Live Writer 微软推出的一款能够免费使用的博客写作软件,主要为用户提供博客在线撰写和编辑功能,可以离线编辑,联网时同步到各大博客网站上去. 接下来,介绍如何使用这款工具发 ...
- python 简介
python简史 python的创始人:Guido van Rossum Guido 在1989年12月时,寻找一门“课余”编程项目来打发圣诞节前后的时间.Guido决定为当时正构思的一个新的脚本语言 ...
- Windows 10 解决 0x80070021 错误
Windows 10 已经不支持 aspnet_regiis -i. 启动和关闭Windows功能中安装 ".NET Framework 4.6 高级服务" 即可解决. 以下是借鉴 ...
- Python(SQLAlchemy-ORM)模块之mysql操作
一.SQLAlchemy简单介绍 SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数 ...
- JSON.parse()的正确用法
昨天晚上在项目中使用JSON.parse()来将字符串格式的数据转换成json,结果悲剧了,总感觉方法没有用错,可是就是报错!想了好久,最后发现原来是json字符串格式不标准! 如:var a = “ ...