libjson 编译和使用 - 2. 配置使用lib文件

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

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

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

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

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

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

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

1 #include "libjson.h"
2 class TestLibjson
3 {
4 public:
5     TestLibjson();
6     void ParseJSON(JSONNODE *n);
7 };  

在TestLibjson.cpp文件加入代码。

 1 // TestLibjson.cpp : 定义控制台应用程序的入口点。
 2 //
 3
 4 #include "stdafx.h"
 5 #include <stdlib.h>
 6 #include "TestLibjson.h"
 7 #include "libjson.h"
 8
 9 TestLibjson::TestLibjson()//构造函数
10 {
11 }
12
13 void TestLibjson::ParseJSON(JSONNODE *n){//解析json文件
14     if (n == NULL){
15         printf("Invalid JSON Node\n");
16         return;
17     }
18
19     JSONNODE_ITERATOR i = json_begin(n);
20     while (i != json_end(n)){
21         if (*i == NULL){
22             printf("Invalid JSON Node\n");
23             return;
24         }
25
26         // recursively call ourselves to dig deeper into the tree
27         if (json_type(*i) == JSON_ARRAY || json_type(*i) == JSON_NODE){
28             ParseJSON(*i);
29         }
30
31         // get the node name and value as a string
32         json_char *node_name = json_name(*i);
33
34         // find out where to store the values
35         if (strcmp(node_name, "RootA") == 0){
36             json_char *node_value = json_as_string(*i);
37             printf("rootA: %s\n", node_value);
38             json_free(node_value);
39         }
40         else if (strcmp(node_name, "ChildA") == 0){
41             json_char *node_value = json_as_string(*i);
42             printf("ChildA: %s\n", node_value);
43             json_free(node_value);
44         }
45         else if (strcmp(node_name, "ChildB") == 0)
46             printf("childB: %d\n", json_as_int(*i));
47         // cleanup and increment the iterator
48         json_free(node_name);
49         ++i;
50     }
51     system("pause");
52 }
53
54 int _tmain()//程序入口
55 {
56     char *json = "{\"RootA\":\"Value in parent node\",\"ChildNode\":{\"ChildA\":\"String Value\",\"ChildB\":42}}";
57     JSONNODE *n = json_parse(json);
58     TestLibjson tl = TestLibjson();
59     tl.ParseJSON(n);
60     json_delete(n);
61
62     return 0;
63 }  

运行结果

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

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

时间: 2024-12-30 04:17:05

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

libjson 编译和使用 - 1. 编译

以下转自:http://blog.csdn.net/laogong5i0/article/details/8212511 最近想用box2dEdit来编辑一下比较复杂的图形然后倒入到自己有游戏里,但box2dEdit编辑后输出的是json文件. 因为没有用C++解析json文件的经验,在网上找了很多有关json的开源项目,有cjson(这是c编写的)jsoncpp(C++的项目,但有人说它的移植性不够好)libjson(支持C和C++)由于对C有一种莫名的恐惧感,所以最后还是选择了libjson

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

MFC编写程序,都要用到动态链接库,MFC相关的动态库有MFCD42和MFC42等,MFC框架程序已经自动加载,那么如何引入第三方的动态链接库到工程中呢? 静态链接库是要先把程序中所需要使用的函数编译成机器码,保存在*.lib文件中.编译器会去*.lib中找出所需要的函数,并把这些函数的机器码复制一份,放在可执行文件中.将lib库引入工程,有下面3种方法. 第一种方法,lib文件直接加入到工程文件列表中. 在VC中打开“File View”一页,选中工程名,单击鼠标右键,然后在弹出的快捷菜单中选

开发人员学Linux(7):CentOS7编译安装PHP并配置PHP-FPM

1.前言上一篇讲述了如何编译安装MySQL,虽然可以通过yum install 或者rpm来安装,但是yum install和rpm安装有一个特点,就是有些参数是别人根据大众需求定制的,如果需要进行自己的特定参数指定,这个是比较难做到的,因此有一定Linux基础的人都是编译安装或者根据公司的具体环境制作适合环境的安装包.上一篇的例子中讲述了如何编译安装和如何配置多实例,并在最后讲述了如何配置主从复制配置.以前开源开发经常将LAMP,就是Linux+Apache+MySQL+PHP,对于一些起步型

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

caffe是一个深度学习的库,相信搞深度学习的话,不是用这个库就是用theano吧.要想使用caffe首先第一步就是要配置好caffe的环境.在这里,我主要说的是在debian的linux环境下如何配置好caffe的库.因为python编写程序比较方便,在文章最后,我还会具体说明如何配置python环境.本文章为本人原创,部分内容整理自网络,若有不妥之处请联系本人删除.非盈利性质网站转载请在文章开头处著名本文作者:77695,来源http://www.cnblogs.com/cj695/.盈利性

CentOS系统上编译、安装、配置OpenCV

声明:本文是个人根据相关博客资料加上自己的经验整理,在此分享以供大家学习交流! 假设CentOS系统下的CodeBlocks已经安装完成,下面我们要在CentOS平台下编译OpenCV,并在CodeBlocks下进行开发测试. (1)下载OpenCV源码,并编译安装 当前最新的版本是OpenCV-2.2,可以从http://sourceforge.net/projects/opencvlibrary/上下载. OpenCV的编译方式有两种,一种是传统的./configure ; make ; m

在VS2008下编译出sqlite3.dll和sqlite3.lib

废话就不多说了,直接进入主题. 1.进入http://sqlite.org/download.html下载sqlite-amalgamation-3071300.zip和sqlite-dll-win32-x86-3071300.zip,解压: 2.创建一个空的win32 dll项目,将解压缩的文件添加进来,进行编译,没有报错,但是查看编译目录,发现只是生成了sqlite3.dll而不见sqlite3.lib文件: 3.项目属性--配置属性--连接器--输入--模块定义文件,添加sqlite3.d

VS编译好的*.lib文件,在其他版本上不能使用出现以下错误

解决方法,有源代码则用本地VS编译器编译生成新的lib文件,在调用:没有源代码,则需知道改lib文件编译时的VS版本,用新的VS版本进行编译

editplus编译执行java的配置方法

参考地址:http://jingyan.baidu.com/article/d2b1d10267dfe35c7e37d487.html 先要将JAVA的运行环境安装并且调试好. 首先,从菜单"工具(Tools)"->"配置用户工具..."进入用户工具设置. 在类别里展开"工具"树形菜单->"用户工具",选择"组和工具项目"中的"Group 1", 点击面板右边的"组

Ubuntu编译安装Php,配置时出现:Configure: error: XML configuration could not be found

解决这个问题是需要安装libxml, sudo apt-get install libxml2-dev Ubuntu编译安装Php,配置时出现:Configure: error: XML configuration could not be found,布布扣,bubuko.com