以下转自:http://blog.csdn.net/laogong5i0/article/details/8223448

1. 在之前的libjson所在的解决方案里新建一个控制台应用程序,叫TestLibjson。

2. 右键TestLibjson项目,选择属性。按下图设置导入libjson的头文件。(虽然我们已经编译成lib库文件,但我们还是要在我们的项目里加入头文件。)

3. 在属性里加入刚刚生产的libjson.lib文件。如下图设置。

好了,配置设置好了,接下来我们写写测试代码

首先新建下列文.h和.cpp文件

在TestLibjson.h文件加入以下代码。

 #include "libjson.h"
class TestLibjson
{
public:
TestLibjson();
void ParseJSON(JSONNODE *n);
};

在TestLibjson.cpp文件加入代码。

 // TestLibjson.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <stdlib.h>
#include "TestLibjson.h"
#include "libjson.h" TestLibjson::TestLibjson()//构造函数
{
} void TestLibjson::ParseJSON(JSONNODE *n){//解析json文件
if (n == NULL){
printf("Invalid JSON Node\n");
return;
} JSONNODE_ITERATOR i = json_begin(n);
while (i != json_end(n)){
if (*i == NULL){
printf("Invalid JSON Node\n");
return;
} // recursively call ourselves to dig deeper into the tree
if (json_type(*i) == JSON_ARRAY || json_type(*i) == JSON_NODE){
ParseJSON(*i);
} // get the node name and value as a string
json_char *node_name = json_name(*i); // find out where to store the values
if (strcmp(node_name, "RootA") == ){
json_char *node_value = json_as_string(*i);
printf("rootA: %s\n", node_value);
json_free(node_value);
}
else if (strcmp(node_name, "ChildA") == ){
json_char *node_value = json_as_string(*i);
printf("ChildA: %s\n", node_value);
json_free(node_value);
}
else if (strcmp(node_name, "ChildB") == )
printf("childB: %d\n", json_as_int(*i));
// cleanup and increment the iterator
json_free(node_name);
++i;
}
system("pause");
} int _tmain()//程序入口
{
char *json = "{\"RootA\":\"Value in parent node\",\"ChildNode\":{\"ChildA\":\"String Value\",\"ChildB\":42}}";
JSONNODE *n = json_parse(json);
TestLibjson tl = TestLibjson();
tl.ParseJSON(n);
json_delete(n); return ;
}

运行结果

注意,这里我们用的的libjson的Debug模式,如果你用的是release模式,那你还需要设置libOption.h文件,把它的#define JSON_DEBUG 注释掉。

下一篇:libjson 编译和使用 - 3. libjson的C接口 API

libjson 编译和使用 - 2. 配置使用lib文件的更多相关文章

  1. libjson 编译和使用 - 1. 编译

    以下转自:http://blog.csdn.net/laogong5i0/article/details/8212511 最近想用box2dEdit来编辑一下比较复杂的图形然后倒入到自己有游戏里,但b ...

  2. 如何使用keil5将stm32的hal库编译成lib文件——F1版本

    hal库中keil5中编译的速度是比较慢的,相同情况下,每次都要编译的时候,比标准库是要慢很多的,因此就hal库编译成lib文件是一种加快编译速度的方法,当然也有其自身的缺点.一.步骤1.使用cube ...

  3. [转]静态库、动态库,dll文件、lib文件,隐式链接、显式链接

    转自:https://blog.csdn.net/dcrmg/article/details/53427181 静态链接.动态链接 静态库和动态库分别应用在静态链接方式和动态链接方式中,所谓静态链接方 ...

  4. 静态库、动态库,dll文件、lib文件,隐式链接、显式链接浅见

    静态链接.动态链接 静态库和动态库分别应用在静态链接方式和动态链接方式中,所谓静态链接方式是指在程序执行之前完成所有的链接工作,把静态库一起打包合入,生成一个可执行的目标文件(EXE文件).所谓动态链 ...

  5. 关于vs的lib文件和dll文件

    一.LIB文件概念 一个lib文件是obj文件的集合.当然,其中还夹杂着其他一些辅助信息,目的是为了让编译器能够准确找到对应的obj文件 二.与DLL的区别 (1)lib是编译时需要的,dll是运行时 ...

  6. VC6.0加载lib文件的三种方法

    MFC编写程序,都要用到动态链接库,MFC相关的动态库有MFCD42和MFC42等,MFC框架程序已经自动加载,那么如何引入第三方的动态链接库到工程中呢? 静态链接库是要先把程序中所需要使用的函数编译 ...

  7. Linux 下编译、安装、配置 QT

    转自Linux 下编译.安装.配置 QT 注意:编译安装耗时费力,且很容易出错,要不断调整编译参数,不推荐使用,否则这将会是一个纠结痛苦的过程. 打算做嵌入式图像处理,计划方案嵌入式Linux+Ope ...

  8. 64位win10+cuda8.0+vs2013+cuDNN V5下Caffe的编译安装教程并配置matlab2014a 接口

    一.需要安装的软件 1)vs2013,我是在http://www.52pojie.cn/thread-492326-1-1.html这个网址安装的.我之前用的是vs2012,按照网上的配置教程会爆各种 ...

  9. 【泡咖啡1】linux下caffe编译以及python环境配置手记

    caffe是一个深度学习的库,相信搞深度学习的话,不是用这个库就是用theano吧.要想使用caffe首先第一步就是要配置好caffe的环境.在这里,我主要说的是在debian的linux环境下如何配 ...

随机推荐

  1. LAMP环境使用Composer安装Laravel

    安装Composer 因为使用的Ubuntu服务器,所以我们使用apt安装: 1 $ sudo apt install composer 安装Laravel 首先创建一个项目目录,进入新目录使用Com ...

  2. 决策树 (decision tree)

    内容学习于 ApacheCN github 定义: 分类决策树模型是一种描述对实例进行分类的树形结构.决策树由结点(node)和有向边(directed edge)组成.结点有两种类型:内部结点(in ...

  3. js包

    1.base.js /*语法: $("选择器") 工厂函数 */       /*寻找页面中name属性值是haha的元素*/   $("[name='haha']&qu ...

  4. iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图

    iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图 使用ios9中的开关.滑块控件 开关和滑块也是用于和用户进行交互的控件.本节将主要讲解这两种控件. ios9开关 开关控件常用来控制某个功能的 ...

  5. android viewHolder static 静态

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 不是静态内部类 会 持有 外部类的 引用.  就像经常自定义的 适配器 类 作为内部类 ...

  6. 洛谷.2619.[国家集训队2]Tree I(带权二分 Kruskal)

    题目链接 \(Description\) 给定一个无向带权连通图,每条边是黑色或白色.求一棵最小权的恰好有K条白边的生成树. \(Solution\) Kruskal是选取最小的n-1条边.而白边数有 ...

  7. 【assembly】用汇编写的一个BMP图片读取器

    ;----------------------------- ;文件满足256色调的 ;----------------------------- Stack    Segment           ...

  8. Sublime Text2 默认语言(windows/unix)设置,Sublime插件大全

    Sublime默认系统语言设置 Sublime Text 2默认使用的就是UTF8,这个UTF8模式使用的是不带BOM的,如果要修改这个配置,到Perference->Settings-User ...

  9. Mac OS下不产生.DS_Store 隐藏文件和清理.DS_Store的方法

    一.清理.DS_Store的方法 1. 打开终端 (Macintosh HD > Applications > Utilities > Terminal)2. 输入命令: " ...

  10. bzoj 2466 异或方程组

    对于每个灯,我们用一个变量表示其决策,xu=0表示不选,xu=1表示选.因为每个灯最后必须都亮,所以每个等都对应一个异或方程. 解这个异或方程组,有几种情况: 1.存在唯一解(得到的上三角系数矩阵的主 ...