当前位置: 首页 > news >正文

有没有网站开发团队gzip压缩网站

有没有网站开发团队,gzip压缩网站,南宁网页制作过程,爱网站关键词挖掘工具目录 一#xff0c;Jsoncpp库序列化和反序列化 二#xff0c;bundle文件压缩库 2.1 文件压缩 2.2 文件解压 一#xff0c;Jsoncpp库序列化和反序列化 首先我们需要先了解一下json是什么#xff0c;json是一种数据交换格式#xff0c;采用完全独立于编程语言的文本格式来…目录 一Jsoncpp库序列化和反序列化 二bundle文件压缩库 2.1 文件压缩 2.2 文件解压 一Jsoncpp库序列化和反序列化 首先我们需要先了解一下json是什么json是一种数据交换格式采用完全独立于编程语言的文本格式来存储和表示数据。 char name 小明; int age 18; float score[3] {88.5, 99, 58}; 则json这种数据交换格式是将这多种数据对象组织成为一个字符串 [{姓名 : 小明,年龄 : 18,成绩 : [88.5, 99, 58]},{姓名 : 小黑,年龄 : 18,成绩 : [88.5, 99, 58]} ] json数据类型对象数组字符串数字 对象使用花括号{}括起来的表示一个对象。 数组使用中括号[]括起来的表示一个数组。 字符串使用常规双引号括起来的表示一个字符串 数字包括整形和浮点型直接使用。 而Jsoncpp库主要用于Json格式的序列化和反序列化可以将多个数据对象组织成Json格式的字符串序列化也可以将Json格式的字符串解析获得多个数据对象反序列化 这其中主要借助三个类以及其对应的少量成员函数完成 //Json数据对象类 class Json::Value{Value operator(const Value other); //Value重载了[]和因此所有的赋值和获取数据都可以通过Value operator[](const std::string key);//简单的方式完成 val[姓名] 小明;Value operator[](const char* key);Value removeMember(const char* key);//移除元素const Value operator[](ArrayIndex index) const; //val[成绩][0]Value append(const Value value);//添加数组元素val[成绩].append(88); ArrayIndex size() const;//获取数组元素个数 val[成绩].size();std::string asString() const;//转string string name val[name].asString();const char* asCString() const;//转char* char *name val[name].asCString();Int asInt() const;//转int int age val[age].asInt();float asFloat() const;//转floatbool asBool() const;//转 bool };//json序列化类低版本用这个更简单 class JSON_API Writer {virtual std::string write(const Value root) 0; } class JSON_API FastWriter : public Writer {virtual std::string write(const Value root); } class JSON_API StyledWriter : public Writer {virtual std::string write(const Value root); } //json序列化类高版本推荐如果用低版本的接口可能会有警告 class JSON_API StreamWriter {virtual int write(Value const root, std::ostream* sout) 0; } class JSON_API StreamWriterBuilder : public StreamWriter::Factory {virtual StreamWriter* newStreamWriter() const; }//json反序列化类低版本用起来更简单 class JSON_API Reader {bool parse(const std::string document, Value root, bool collectComments true); } //json反序列化类高版本更推荐 class JSON_API CharReader {virtual bool parse(char const* beginDoc, char const* endDoc, Value* root, std::string* errs) 0; } class JSON_API CharReaderBuilder : public CharReader::Factory {virtual CharReader* newCharReader() const; } 接下来我们来举例使用一下 #include iostream #include sstream #include memory #include jsoncpp/json/json.hint main() {// 序列化const char *name1 张三;int age1 18;float grade1[3] {77.1, 64.74, 56.11};Json::Value val;val[姓名] name1;val[年龄] age1;val[成绩].append(grade1[0]);val[成绩].append(grade1[1]);val[成绩].append(grade1[2]);Json::StreamWriterBuilder swb;std::shared_ptrJson::StreamWriter writer_ptr(swb.newStreamWriter());std::ostringstream sst;writer_ptr-write(val, sst);std::cout sst.str() std::endl;std::cout ---------------------------------------------------- std::endl;// 反序列化std::string str R({姓名:李四,年龄:24,成绩:[71.1,60,50]});Json::Value root;std::string err;Json::CharReaderBuilder crb;std::shared_ptrJson::CharReader read_ptr(crb.newCharReader());read_ptr-parse(str.c_str(), str.c_str() str.size(), root, err);const char *name2 root[姓名].asCString();int age2 root[年龄].asInt();float grade2[3] {0};grade2[0] root[成绩][0].asFloat();grade2[1] root[成绩][1].asFloat();grade2[2] root[成绩][2].asFloat();std::cout 姓名 name2 std::endl;std::cout 年龄 age2 std::endl;for (auto f : grade2){std::cout f ;}std::cout std::endl;return 0; } 二bundle文件压缩库 BundleBundle是一个嵌入式压缩库支持23种压缩算法和2种存档格式。使用的时候只需要加入两个文件bundle.h 和 bundle.cpp即可。 namespace bundle {// low level API (raw pointers)bool is_packed( *ptr, len );bool is_unpacked( *ptr, len );unsigned type_of( *ptr, len );size_t len( *ptr, len );size_t zlen( *ptr, len );const void *zptr( *ptr, len );bool pack( unsigned Q, *in, len, *out, zlen );bool unpack( unsigned Q, *in, len, *out, zlen );// medium level API, templates (in-place)bool is_packed( T );bool is_unpacked( T );unsigned type_of( T );size_t len( T );size_t zlen( T );const void *zptr( T );bool unpack( T , T );bool pack( unsigned Q, T , T );// high level API, templates (copy)T pack( unsigned Q, T );T unpack( T ); } 2.1 文件压缩 #include iostream #include string #include fstream #include bundle.hint main(int argc, char *argv[]) {std::cout argv[1] 是原始文件路径名称\n;std::cout argv[2] 是压缩包名称\n;if (argc 3) return -1;std::string ifilename argv[1];std::string ofilename argv[2];std::ifstream ifs;ifs.open(ifilename, std::ios::binary);//打开原始文件ifs.seekg(0, std::ios::end);//跳转读写位置到末尾size_t fsize ifs.tellg();//获取末尾偏移量--文件长度ifs.seekg(0, std::ios::beg);//跳转到文件起始std::string body;body.resize(fsize);//调整body大小为文件大小ifs.read(body[0], fsize);//读取文件所有数据到body找给你std::string packed bundle::pack(bundle::LZIP, body);//以lzip格式压缩文件数据std::ofstream ofs;ofs.open(ofilename, std::ios::binary);//打开压缩包文件ofs.write(packed[0], packed.size());//将压缩后的数据写入压缩包文件ifs.close();ofs.close();return 0; } 2.2 文件解压 #include iostream #include fstream #include string #include bundle.hint main(int argc, char *argv[]) {if (argc 3) {printf(argv[1]是压缩包名称\n);printf(argv[2]是解压后的文件名称\n);return -1; } std::string ifilename argv[1];//压缩包名std::string ofilename argv[2];//解压缩后文件名std::ifstream ifs;ifs.open(ifilename, std::ios::binary);ifs.seekg(0, std::ios::end);size_t fsize ifs.tellg();ifs.seekg(0, std::ios::beg);std::string body;body.resize(fsize);ifs.read(body[0], fsize);ifs.close();std::string unpacked bundle::unpack(body);//对压缩包数据解压缩std::ofstream ofs;ofs.open(ofilename, std::ios::binary);ofs.write(unpacked[0], unpacked.size());ofs.close();return 0; }
http://www.w-s-a.com/news/893760/

相关文章:

  • 网站线框图用什么做共享门店新增礼品卡兑换模式
  • 互联网建站是什么seo服务公司上海
  • 象山县城乡建设局网站做网站客户要求分期
  • 什么是网络营销型网站手机网站 图标
  • 全国新农村建设网站外包和劳务派遣哪个好
  • 网站权限控制什么软件做网站描述
  • 建网络商城网站wordpress关于
  • 专业网站建设分类标准重庆网站开发哪家专业
  • 织梦的网站关键词如何自己搭建微信小程序
  • 怎么做基金公司网站韩都衣舍网站建设ppt
  • 外贸网站模板aspnet网站开发 视频
  • 上海植物租赁做网站南浔网站建设
  • 怎么做学校网站做兼职工作上哪个网站招聘
  • 软件下载网站哪个比较好杭州开发小程序
  • 做网站都用什么技术学做名片的网站
  • 备案网站忘记密码乐装网
  • 电商扶贫网站建设淄博网站建设小程序
  • 网站群建设代理丰城网站建设公司
  • 青岛网站建设服务器wordpress迁移跳转原网站
  • 泰安网站建设哪里有公司如何注册网站
  • 做网站开专票税钱是多少个点上海市有哪些公司
  • 寿县有做网站开发的吗宁波网站建设方式
  • 网站建设和网站推广服务器怎么发布网站
  • 比较好的摄影网站雅安市政建设公司网站
  • 网站与微信区别wordpress 站内信
  • 宁夏网站开发设计说明书源码下载脚本之家
  • 邱县做网站百度搜索排名机制
  • 运城个人网站建设智慧团建系统官方网站登录
  • 公司营业执照可以做几个网站一家专门做母婴的网站
  • 网站建设商标属于哪个类别搜狗seo快速排名公司