******************************************************
标准C++实现jsoncpp 源码使用编译
(VC2012 MFC)
(Qt5.2 Widget)
******************************************************
1)下载jsoncpp源代码:jsoncpp-src-0.5.0.tar.gz
2)解压...
3)需要的源代码文件:jsoncpp-src-0.5.0/include/json:
(1)autolink.h
(2)config.h
(3)features.h
(4)forwards.h
(5)json.h
(6)reader.h
(7)value.h
(8)writer.h
jsoncpp-src-0.5.0/src/lib_json:
(9) json_batchallocator.h
(10)json_internalarray.inl
(11)json_internalmap.inl
(12)json_reader.cpp
(13)json_value.cpp
(14)json_valueiterator.inl
(15)json_writer.cpp
(16)sconscript

4)把16个文件集中放到一个文件夹"json"中,把文件夹json放到工程目录下。
5)把所有文件添加到系统工程中
6)编译报错:在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h"”
解决办法1:在cpp文件头部添加 #include "stdafx.h"
解决办法2:解决方案标签/选中cpp文件/右键/属性/cc++/禁用预编译头
该问题只针对VC中出现。
7)几个头文件包含需要修改一下:目录修改、<>改为""等
8)编译成功,包含json.h即可使用,注意命名空间Json的使用

************************************************************
josncpp 简单使用(Qt例子)
************************************************************
// 从字符串解析json
const char* str = "{\"x\":[{\"aaa\":\"bbb\"}]}";
Json::Reader reader;
Json::Value root;
if (reader.parse(str, root)) // reader将Json字符串解析到root,root将包含Json里所有子元素
{
std::string upload_id = root["x"][(Json::UInt)0]["aaa"].asString();
QString strTTT ;
strTTT+=upload_id.c_str();
QMessageBox::information(this,"提示",strTTT);
}

// json对象转化为字符串
Json::FastWriter writerObj;
QString strT;
strT+=writerObj.write(root).c_str();
QMessageBox::information(this,"提示",strT);

************************************************************
附:
json串在线验证: http://www.json.cn/
************************************************************

jsoncpp 源码编译与简单使用的更多相关文章

  1. [转] cmake源码编译安装jsoncpp

    1.下载jsoncpp源码 wget https://github.com/open-source-parsers/jsoncpp/archive/master.zip 2.解压缩源码文件 unzip ...

  2. World Wind .NET源码编译问题处理

    World  Wind  .NET源码编译问题处理 下载了World_Wind_1.4.0_Source源码(http://worldwindcentral.com/wiki/NASA_World_W ...

  3. 烂泥:mysql5.5数据库cmake源码编译安装

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 以前也写过一篇有关mysql5.0源码编译的文章,该文章为<烂泥:mysql5.0数据库源码编译安装>.但是MySQL自5.5版本以后,就开 ...

  4. Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程

    Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程   在新的Ubuntu 64位系统下去编译早期的安卓源码是会出现很多问题的,因为64位系统在安装完成后,很多32位的兼容 ...

  5. Apache Spark源码走读之9 -- Spark源码编译

    欢迎转载,转载请注明出处,徽沪一郎. 概要 本来源码编译没有什么可说的,对于java项目来说,只要会点maven或ant的简单命令,依葫芦画瓢,一下子就ok了.但到了Spark上面,事情似乎不这么简单 ...

  6. centos 6.5源码编译安装subversion 1.8.10

    一.简介 CentOS 6.5的yum源可以安装的SVN客户端版本太低了,1.6.11,所以需要升级到1.8.10,而官网有没有找到1.8.10的安装包,只能选择源码编译安装. 二.安装步骤 参考官网 ...

  7. hadoop-1.2.0源码编译

    以下为在CentOS-6.4下hadoop-1.2.0源码编译步骤. 1. 安装并且配置ant 下载ant,将ant目录下的bin文件夹加入到PATH变量中. 2. 安装git,安装autoconf, ...

  8. CentOS6.6源码编译升级GCC至4.8.2

    升级前提 源码编译需要至少要有一个可用的gcc编译器. 可以用过yum自动安装或者手动下载rpm包安装. 通过yum可以看到至少需要下面这些安装包,所以可以到许多rpm package站点中搜索下载相 ...

  9. Linux下源码编译安装rpy2

    R(又称R语言)是一款开源的跨平台的数值统计和数值图形化展现工具.rpy2是Python直接调用R的第三方库,它可以实现使用python读取R的对象.调用R的方法以及Python与R数据结构转换等.这 ...

随机推荐

  1. 【Linux开发】Linux启动脚本设置

    前言linux有自己一套完整的启动 体系,抓住了linux启动 的脉络,linux的启动 过程将不再神秘.阅读之前建议先看一下附图.本文中假设inittab中设置的init tree为:/etc/rc ...

  2. Windows.etc\hosts文件

    ZC:就是将 后面的项 重定位到 前面的项 1.目录:"C:\Windows\System32\drivers\etc" 文件:"C:\Windows\System32\ ...

  3. 通过proxychains实现Ubuntu终端代理

    1.在终端内使用代理,需要使用proxychains: sudo apt-get install proxychains 2.编辑 /etc/proxychains.conf sudo gedit / ...

  4. [DS+Algo] 008 查找

    1. 常见搜索方法 顺序查找 最优时间复杂度:O(1) 最坏时间复杂度:O(n) 二分法 最优时间复杂度:O(1) 最坏时间复杂度:O(logn) 二叉树 若是"二叉搜索树" 最优 ...

  5. Struts学习(一)

    1.Struts开发基础 1.1  MVC的基本概念 mvc将一个应用系统的输入.处理和输出流程按照Model(模型).View(视图)和Controller(控制器)三部分进行分离,划分成模型层.视 ...

  6. 【五一qbxt】day3 动态规划

    动态规划 引例: 斐波那契数列: 边界条件:f0=0: f1=1: 能够直接被求出值的状态 不需要计算其他斐波那契数列的值直接可以得到结果: 转移方程:fn=fn-1+fn-2如何用已有状态求出未知状 ...

  7. Centos7Yum安装PHP7.2流程

    Centos7Yum安装PHP7.21.安装源 安装php72w,是需要配置额外的yum源地址的,否则会报错不能找到相关软件包. php高版本的yum源地址,有两部分,其中一部分是epel-relea ...

  8. 堆”,"栈","堆栈","队列"以及它们的区别

    如果你学过数据结构,就一定会遇到“堆”,"栈","堆栈","队列",而最关键的是这些到底是什么意思?最关键的是即使你去面试,这些都还会问到, ...

  9. 常用php算法

       一.冒泡排序function bubble($array){ $cnt = count($array); if($cnt <= 0) return $array; for($i =1;$i ...

  10. Java——绘制五角星

    Java2D支持通过GeneralPath实现绘制任意的几何形状. 步骤:1)实例化GeneralPath对象 2)调用moveTo()方法锚地开始点坐标 3)调用lineTo()或curveTo() ...