******************************************************
标准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. MySQL数据库的特点和优势

    MySQL数据库的特点和优势: 1.MySQL性能卓越.服务稳定,很少出现异常宕机. 2.MySQL开放源代码且无版权制约,自主性及使用成本低. 3.MySQL历史悠久,用户使用活跃,遇到问题可以寻求 ...

  2. Linux 创建与删除(5)

    相对于Windows下的右键新建文件与删除,我更喜爱Linux下的命令式创建与删除,真的方便.不过Windows下也可以借助工具来实现,比如git bash.cmder等等终端工具. 创建文件 新建文 ...

  3. 利用CSS的translate属性或利用CSS实现图片居中的效果

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Paper Reading

    Paper Reading_SysML Paper Reading_Computer Architecture Paper Reading_Database Paper Reading_Distrib ...

  5. C# 各种加密

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Sec ...

  6. MATLAB图像的代数运算

    1.图像旋转与缩放 bm=imread("3.png"); %subplot(1,3,1); imshow(bm); %缩放图片 %bt=imresize(bm,0.5,'near ...

  7. Python 项目转化为so文件

    思路是先将py转换为c代码,然后编译c为so文件,所以要安装以下内容: python 安装:cython pip install cython linux 安装:python-devel,gcc yu ...

  8. Ubuntu16.04 php7.1安装redis扩展

    sudo apt install php7.1-redis //修改php配置 vi /etc/php.ini 添加extension=redis.so

  9. 一、ASP.NET Iframework_SignalR集线器类(v2)

    一.新建项目,选MVC项目默认 添加mvc文件夹和核心引用 二.添加SignaIR包 SignalR的准备:NuGet包管理器搜索:工具——>库程序包管理器——>Microsoft.Asp ...

  10. codeforces 108D Basketball Team(简单组合)

    D. Basketball Team time limit per test 2 seconds memory limit per test 256 megabytes input standard ...