导航:首页 > 源码编译 > jsoncpp编译

jsoncpp编译

发布时间:2022-02-22 21:57:49

❶ 往c++项目里添加jsoncpp

http://www.codeproject.com/Articles/20027/JSON-Spirit-A-C-JSON-Parser-Generator-Implemented
我用的是这个,前提你要知道Boost,都是要自己编译的,因为有些格式或设定跟你程序不一致,会有问题!

❷ jsoncpp阅读文件不正确问题,怎么解决

TO awei114: 我编写WinCE应用程序lib直接加工程文件夹吧我其都加需要设置路径啊直接加入文件json.h #prama comment(lib,json)

已搞定能够编译链接通谢谢各位关注接要往更深处走

❸ 怎么在VS2008里使用jsoncpp

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

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

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

  1. VS2008里新建一个空的控制台程序(用作测试jsoncpp是否可用),名为: TestJSON

  2. 解压下载好的文件:jsoncpp-src-0.5.0.tar.gz

  3. 将 jsoncpp-src-0.5.0include 目录下的json文件夹拷贝至 TestJSON 工程目录下

  4. 将jsoncpp-src-0.5.0srclib_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.0makefilesvs71目录下的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.0uildvs71debuglib_json目录下会生成一个json_vc71_libmtd.lib,将这个lib拷贝至TestJSON工程目录下。

  6. 将jsoncpp-src-0.5.0includejson目录下的所有.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,然后确定,编译就行了。


/* 测试jsoncpp的使用
*/

#include<iostream>
#include"json/json.h"

usingnamespacestd;
usingnamespaceJson;//json的命名空间

intmain()
{
/*JSONDATAasfollowing://一个json类型的数据
{
"test:5
}*/

stringtest="{"test":5}";//保存上文的json类型的数据

//以下涉及json的操作,将在后文中涉及,此处为简单应用,不解释,你懂的
Readerreader;
Valuevalue;

if(reader.parse(test,value))
{
inti=0;

if(!value["test"].isNull())
{
i=value["test"].asInt();
cout<<i<<endl;
}
}

return0;
}

❹ jsoncpp和rapidjson哪个好用

易用性:rapidjson是全头文件包含的,jsoncpp需要你内置编译或编译成库;但rapidjson的一些接口不全,只提供了一层一层的这种解析方式,不能将某一层一次读出来,实际用的时候,要简单封装一下,不然代码量会很大;
性能:rapidjson的性能是现在所有的c++ json解析库里面最高的,没有之一;
容错性:rapidjson只支持标准的 json 格式,很多人以为这个是缺点,我觉得这个是优点,大家都按照标准做,这是成本最低的;

rapidjson之前是托管在Googe Code上的,现在已迁移到GitHub,地址:miloyip/rapidjson · GitHub

❺ JSON中数组该如何解析呢c++中使用jsoncpp

JSON是一个轻量级的数据定义格式,比起XML易学易用,而扩展功能不比XML差多少,用之进行数据交换是一个很好的选择
JSON的全称为:javaScript Object Notation ,顾名思义,JSON是用于标记javascript对象的,详情参考http://www.json.org/。
本文选择第三方库JsonCpp来解析json,JsonCpp是比较出名的c++解析库,在json官网也是首推的。
JsonCpp简介
JsonCpp主要包含三种类型的class:Value Reader Writer。
jsoncpp中所有对象、类名都在namespace json中,包含json.h即可。
注意: Json::Value只能处理ANSI类型的字符串,如果C++程序使用Unicode编码的,最好加一个Adapt类来适配。
下载和编译
本文运行环境是: Redhat 5.5 + g++version 4.6.1 + GNU Make 3.81 + jsoncpp-0.5.0
下载地址是:http://sourceforge.net/projects/jsoncpp/
解压之后得到jsoncpp-src-0.5.0文件夹,我们只需要jsoncpp的头文件和cpp文件,其中jsonscpp的头文件位于jsoncpp-src-0.5.0includejson,jsoncpp的cpp文件位于jsoncpp-src-0.5.0srclib_json。
这里我列出我们的工作目录:
jsoncpp/ //工作目录
|-- include //头文件根目录
| |-- json //json头文件,对应jsoncpp-src-0.5.0includejson
|-- src //cpp源码文件根目录
|-- json //jsoncpp源码文件,对应jsoncpp-src-0.5.0srclib_json
|-- main.cpp //我们的主函数,调用jsoncpp的示例代码
|-- makefile //makefile,不用我们多说了吧,不懂请看我博客的makefile最佳实践
反序列化Json对象
假设有一个json对象如下:

{ "name": "json″, "array": [ { "cpp": "jsoncpp" }, { "java": "jsoninjava" }, { "php": "support" } ] }

我们要实现这个json的反序列号代码如下:
voidreadJson() { usingnamespacestd; std::stringstrValue = "{\"name\":\"json\",\"array\":[{\"cpp\":\"jsoncpp\"},{\"java\":\"jsoninjava\"},{\"php\":\"support\"}]}"; Json::Reader reader; Json::Value value; if(reader.parse(strValue, value)) { std::stringout= value["name"].asString(); std::cout <<out<<std::endl; constJson::Value arrayObj = value["array"]; for(unsigned inti = 0;i <arrayObj.size(); i++) { if(!arrayObj[i].isMember("cpp")) continue; out= arrayObj[i]["cpp"].asString(); std::cout <<out; if(i != (arrayObj.size() - 1)) std::cout <<std::endl; } } }

序列化Json对象
voidwriteJson() { usingnamespacestd; Json::Value root; Json::Value arrayObj; Json::Value item; item["cpp"] = "jsoncpp"; item["java"] = "jsoninjava"; item["php"] = "support"; arrayObj.append(item); root["name"] = "json"; root["array"] = arrayObj; root.toStyledString(); std::stringout= root.toStyledString(); std::cout <<out<<std::endl; }

❻ windows 平台怎么编译使用jsoncpp

其实最好还是使用vs,c语言不适合做大型的应用程序,c程序适合做单片机程序和驱动程序。windows程序最好还是使用vc6.0,网页程序使用vs2008,单片机和驱动使用汇编语言。
Visual C++的Windows窗体应用程序可以成.exe文件,也就是应用程序,开发软件可以创建这个项目;如果想写C语言,Visual C++里面自带有编写.cpp文件的C语言环境!

❼ jsoncpp问题

放到你的工程里,相当于你的工程额外多了一个cpp文件,和两个h文件,如果你的工程仅有一个main.cpp,那就是两个cpp和两个h文件,组成了你这个工程。

❽ 怎么将jsoncpp编译成lib文件

比如你在VC6.0有一个工程project,里面有以下3个文件

/*1*/fun.h
#ifndef FUN_H
#define FUN_H
void fun();
#endif

/*2*/fun.c
#include <stdio.h>
#include "fun.h"
void fun()
{
printf("fun()");
}

/*3*/main.c
#include <stdio.h>
#include "fun.h"
int main()
{
fun();
getchar();
}

菜单project->setting->link
把输出文件名“Debug/project.exe”改成“Debug/project.lib”,确定
按F7组建project.lib
这样在你的project\Debug文件夹下就可以找到project.lib了

阅读全文

与jsoncpp编译相关的资料

热点内容
如何保证公司服务器安全 浏览:582
如何在本地iis服务器写代码 浏览:938
剑灵电信服务器怎么样 浏览:652
骨科手术学pdf 浏览:772
监控服务器与交换机需要什么技术 浏览:58
为什么文件解压txt后乱码 浏览:785
力学轴向拉伸和压缩 浏览:115
一点公益系统源码 浏览:1003
python怎么创建新文本 浏览:963
redis操作命令 浏览:283
安卓加密后输入密码黑屏 浏览:527
如何让安卓没有升降按键 浏览:769
网易服务器炸了游戏怎么办 浏览:814
会逐年减产的加密货币有哪些 浏览:779
吉祥码安卓手机怎么能敲出来 浏览:804
怎样在苹果手机上查找定位服务器地址 浏览:197
程序员要去哪里考证 浏览:273
ping阿里云服务器丢包正常吗 浏览:617
dns服务器怎么配置dns地址 浏览:92
牛熊pdf 浏览:718