VS2008中使用JSONCPP方法小结

http://sourceforge.net/projects/jsoncpp/?source=typ_redirect


C++要使用JSON来解析数据,一般采用jsoncpp.

下载jsoncpp后,按ReadMe文档的说法是要先安装的,但是安装比较麻烦。然而事实上,我们并不需要安装,就可以直接使用。

方法一:直接拷贝源文件。这个方法比较简单,但不推荐,因为不便于项目管理。

  1. VS2008里新建一个空的控制台程序(用作测试jsoncpp是否可用),名为: TestJSON
  2. 解压下载好的文件:jsoncpp-src-0.5.0.tar.gz
  3. 将 jsoncpp-src-0.5.0\include 目录下的json文件夹拷贝至 TestJSON 工程目录下
  4. 将 jsoncpp-src-0.5.0\src\lib_json 目录下的所有.h, .cpp 文件全部拷贝至 TestJSON 工程目录下
  5. 在VS2008里引入工程目录下刚刚从 jsoncpp-src-0.5.0 导入的文件,如图1
  6. 在VS2008里新建main.cpp来测试jsoncpp是否可用。代码见文章末尾main.cpp

方法二:使用静态链接库

  1. VS2008里新建一个空的控制台程序(用作测试jsoncpp是否可用),名为: TestJSON
  2. 解压下载好的文件:jsoncpp-src-0.5.0.tar.gz
  3. 利用VS2008打开jsoncpp-src-0.5.0\makefiles\vs71目录下的jsoncpp.sln,会出现三个Project:jsontest, lib_json, test_lib_json
  4. 在lib_json上 右击-->Properties-->Configuration Properties-->C/C++-->Code Generation,注意右侧的Runtime Library的内容,如图2,看完箭头所指的东西就可以点确定,关掉属性页。
  5. 编译lib_json,显示编译成功后,在jsoncpp-src-0.5.0\build\vs71\debug\lib_json目录下会生成一个json_vc71_libmtd.lib,将这个lib拷贝至TestJSON工程目录下。
  6. 将jsoncpp-src-0.5.0\include\json目录下的所有.h文件拷贝至TestJSON工程目录下,并在工程Header Files引入.
  7. 将方法一里的main.cpp添加到工程中,并在工程名上 右击-->Properties-->Configuration Properties-->C/C++-->Code Generation, 将Runtime Library改成图2箭头所示内容。
  8. 在工程名上 右击-->Properties-->Configuration Properties-->Linker-->Input, 在Additional Dependencies里填写json_vc71_libmtd.lib,然后确定,编译就行了。

图1:

图2:

 

复制代码
/* 测试jsoncpp的使用* dxh1688@gmail.com*/#include <iostream> #include "json/json.h"using namespace std; using namespace Json; //json的命名空间 int main() {/*JSON DATA as following: //一个json类型的数据 {"test : 5}*/string test = "{\"test\" : 5}"; //保存上文的json类型的数据//以下涉及json的操作,将在后文中涉及,此处为简单应用,不解释,你懂的 Reader reader;Value value;if (reader.parse(test, value)){int i = 0;if (!value["test"].isNull()){i = value["test"].asInt();cout << i << endl;}}return 0; }
复制代码

    分类: C/C++/VC++, Tools

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462298.shtml

    如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    SQL条件语句(IF, CASE WHEN, IF NULL)

    1.IF 表达式&#xff1a;IF( expr1 , expr2 , expr3 ) expr1条件&#xff0c;条件为true&#xff0c;则值是expr2 &#xff0c;false&#xff0c;值就是expr3 SELECT o.id,u.account,catagory.name,orderTime,detail.amount,periodtime,if(direction0,看涨,看跌) directionNam…

    Forensic Challenge 9 - Mobile Malware

    使用智能手机的人越来越多&#xff0c;对智能手机的安全研究也慢慢开始成为重点。The honey project有一个Mobile malware的挑战赛&#xff0c; 带你走进Mobile Malwares的世界。参见&#xff1a; Forensic Challenge 9 - "Mobile Malware" 样本&#xff1a; fc9fil…

    如何在Windows下编译OpenSSL

    OpenSSL是一个开源的第三方库&#xff0c;它实现了SSL&#xff08;Secure SocketLayer&#xff09;和TLS&#xff08;Transport Layer Security&#xff09;协议&#xff0c;被广泛企业应用所采用。对于一般的开发人员而言&#xff0c;在 http://slproweb.com/products/Win32Op…

    《团队名称》第八次团队作业:Alpha冲刺day5

    项目内容这个作业属于哪个课程2016计算机科学与工程学院软件工程(西北师范大学)这个作业的要求在哪里实验十二 团队作业8—软件测试与ALPHA冲刺团队名称快活帮作业学习目标 &#xff08;1&#xff09;掌握软件测试基础技术。 &#xff08;2&#xff09;学习迭代式增量软件开发过…

    (转)C# 把我所积累的类库全部分享给博友(附件已经上传)

    http://files.cnblogs.com/LsGW/Common.zip转载于:https://www.cnblogs.com/meetrice/archive/2012/01/02/2310428.html

    Oracle的resetlogs机制浅析

    alter database open resetlogs 这个命令我想大家都很熟悉了&#xff0c;那有没有想过这个resetlogs选项为什么要用&#xff1f;什么时候用&#xff1f;它的原理机制是什么&#xff1f;他都起哪些作用&#xff1f;我们都知道数据在启动时候是要做一致性检查的&#xff0c;oracl…

    前端的小图标获取

    搜索iconfont&#xff0c;里面有很多图标&#xff0c;鼠标移到想要的图标上&#xff0c;然后点击一个类似购物车的图标&#xff0c;然后添加到项目&#xff0c;下载到本地&#xff0c;有一个使用指南的html&#xff0c;然后参照上面的改就好。 把下载好的.css和.eot文件拖到css…

    LINQ学习笔记(9) LINQ to Objects---查询内存中对象的集合

    从这一篇开始要总结的是LINQ在实际中的应用&#xff0c;首先要总结的是LINQ to Objects&#xff0c;也就是LINQ与程序对象的配合使用。 其中程序对象集合最典型就是与数组的配合使用,如下示例&#xff1a; 1 class Program 2 { 3 static void Main(string[] args) …

    $JavaScript(3)

    41、渐进增强和优雅降级 渐进增强 &#xff1a;针对低版本浏览器进行构建页面&#xff0c;保证最基本的功能&#xff0c;然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。 优雅降级 &#xff1a;一开始就构建完整的功能&#xff0c;然后再针对低版本浏…

    [恢]hdu 1846

    2011-12-23 06:07:41 地址&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1846 题意&#xff1a;中文。 mark&#xff1a;考虑n%(m1)是否为0。 代码&#xff1a; # include <stdio.h>int main (){int T, n, m ; scanf ("%d", &T) ;while (T--)…

    转:Yupoo(又拍网)的系统架构

    Yupoo!&#xff08;又拍网&#xff09; 是目前国内最大的图片服务提供商&#xff0c;整个网站构建于大量的开源软件之上。以下为其使用到的开源软件信息&#xff1a; 操作系统&#xff1a;CentOS、MacOSX、Ubuntu 服务器&#xff1a;Apache、Nginx、Squid 数据库&#xff1a;…

    搭建golang webcron 定时任务管理平台

    获取源码 $ go get github.com/lisijie/webcron 打开配置文件 conf/app.conf&#xff0c;修改相关配置。 创建数据库webcron&#xff0c;再导入install.sql $ mysql -u username -p -D webcron < install.sql 运行 $ ./webcron 或 $ nohup ./webcron 2>&1 > error…

    [恢]hdu 1239

    2011-12-31 01:58:02地址&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1239 题意&#xff1a;给m、a、b。求一对素数p,q(p<q)使得p*q<m且p/q > a/b。若有多对&#xff0c;输出p*q最大的一对。 mark&#xff1a;刚开题看了半天&#xff0c;才看明白啥意思。…

    浏览器搜索功能的使用

    浏览器搜索功能的使用 直接在地址栏中搜索你需要的内容 用浏览器的搜索栏进行搜索 用双引号 " " 进行搜索 转载于:https://www.cnblogs.com/GaoNa/p/11061066.html

    ubuntu core 文件产生

    关于内核转储的设置方法 1. 内核转储作用 (1) 内核转储的最大好处是能够保存问题发生时的状态。 (2) 只要有可执行文件和内核转储&#xff0c;就可以知道进程当时的状态。 (3) 只要获取内核转储&#xff0c;那么即使没有复现环境&#xff0c;也能调试。 2. 启用内核转储 1.1 查…

    在Linux中,用什么命令查看文件或目录的权限?

    命令:ll 或者 ls -l 解释&#xff0c;输出的格式如下 -rwxr-xr-x 1 root wheel 430540 Dec 23 18:27 /bin/bash第一个字段 -rwxr-xr-x 包含该特殊文件的权限的符号表示。该字段中的首字符&#xff08;-&#xff09;指定该文件的类型&#xff0c;本例中它是一个常规…

    H.264可伸缩编码SVC

    第十章 H.264可伸缩编码SVC 10.1 概述 &#xff08;1&#xff09;自适应编码&#xff08;Adaptive Coding) 根据网络状况&#xff0c;编码器可以使用码率控制技术&#xff0c;改变量化参数或编码帧率来生成所需速率的码流。 &#xff08;2&#xff09;转码技术&#xff08;Tr…

    shell 需要注意的点

    #&#xff01;/bin/bash set -o nounset set -o errexit#set -o nounset #在默认情况下&#xff0c;遇到不存在的变量&#xff0c;会忽略并继续执行&#xff0c;而这往往不符合预期&#xff0c;加入该选项&#xff0c;可以避免恶果扩大&#xff0c;终止脚本的执行。#set -o err…

    C#将Json字符串反序列化成List对象类集合

    usingSystem.IO;usingSystem.Web.Script.Serialization;usingSystem.Runtime.Serialization.Json;//工具类publicstaticList<T> JSONStringToList<T>(thisstring JsonStr){JavaScriptSerializer Serializer newJavaScriptSerializer();List<T> objs Serial…

    mysql Access denied for user root@localhost错误解决方法总结

    代码如下 复制代码 # /etc/init.d/mysql stop # mysqld_safe --usermysql --skip-grant-tables --skip-networking & # mysql -u root mysql mysql> UPDATE user SET PasswordPASSWORD(newpassword) where USERroot; mysql> FLUSH PRIVILEGES; mysql> quit # /e…