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

海南网络公司网站建设视频网站建设工具

海南网络公司网站建设,视频网站建设工具,招商建设工程有限公司网站,h5制作开发在哪儿目录 1.介绍2.jsoncpp3.使用1.main.cc2.序列化3.反序列化 1.介绍 json是一种数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据json数据类型:对象、数组、字符串、数字 对象:使用{}括起来的表示一个对象数组:使用[…

目录

  • 1.介绍
  • 2.jsoncpp
  • 3.使用
    • 1.main.cc
    • 2.序列化
    • 3.反序列化


1.介绍

  • json是一种数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据
  • json数据类型:对象、数组、字符串、数字
    • 对象:使用{}括起来的表示一个对象
    • 数组:使用[]括起来的表示一个数组
    • 字符串:使用""括起来的表示一个字符串
    • 数字:包括整形和浮点型,直接使用

2.jsoncpp

  • jsoncpp库用于实现json格式的序列化和反序列化,完成将多个数据对象组织成为格式字符串解析得到多个数据对象的功能
  • 主要借助三个类以及其对应的少量成员函数完成
    // Json数据对象类 -> 用于进行中间数据存储
    class Json::Value
    {// Value重载了[]和=,因此所有的赋值和获取数据都可以通过[]实现Value &operator=(const Value &other);// 简单的方式完成 val["姓名"] = "SnowK";Value& operator[](const std::string& key);Value& operator[](const char* key);// 移除元素Value removeMember(const char* key);// val["成绩"][0]const Value& operator[](ArrayIndex index) const; // 添加数组元素val["成绩"].append(88); Value& append(const Value& value);// 获取数组元素个数 val["成绩"].size();ArrayIndex size() const;// 转string   string name = val["name"].asString();std::string asString() const;// 转char*   char *name = val["name"].asCString();const char* asCString() const;// 转int  int age = val["age"].asInt();int asInt() const;              // 转floatfloat asFloat() const;// 转 boolbool asBool() const;
    };//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;
    }
    

3.使用

1.main.cc

int main()
{char name[] = "SnowK";int age = 18;float score[3] = {100, 99, 98};Json::Value stu;stu["Name"] = name;stu["Age"] = age;stu["Score"].append(score[0]);stu["Score"].append(score[1]);stu["Score"].append(score[2]);std::string str;if(Serialize(stu, str) == false){return -1;}std::cout << str << std::endl;std::cout << "-------------------------------" << std::endl;Json::Value val;if(UnSerialize(str, val) == false){return -1;}std::cout << val["Name"].asString() << std::endl;std::cout << val["Age"].asInt() << std::endl;for (int i = 0; i < val["Score"].size(); i++){std::cout << val["Score"][i].asInt() << std::endl;}return 0;
}

2.序列化

bool Serialize(const Json::Value &val, std::string &dest)
{// 由Json::StreamWriterBuilder生产出Json::StreamWriterJson::StreamWriterBuilder swb;std::unique_ptr<Json::StreamWriter> sw(swb.newStreamWriter());// 通过Json::StreamWrite的write()进行序列化std::stringstream ss;if (sw->write(val, &ss) != 0){std::cout << "Json序列化失败" << std::endl;return false;}dest = ss.str();return true;
}

3.反序列化

bool UnSerialize(const std::string &src, Json::Value &val)
{Json::CharReaderBuilder crb;std::unique_ptr<Json::CharReader> cr(crb.newCharReader());std::string err;if (cr->parse(src.c_str(), src.c_str() + src.size(), &val, &err) == false){std::cout << "json反序列化失败: " << err << std::endl;return false;}return true;
}
http://www.yayakq.cn/news/567493/

相关文章:

  • 哪里有免费的网站网址企业网站源码 html5+xml
  • 优质的设计网站有哪些湖州培训网站建设网络营销
  • 百度站长平台如何添加网站网站索引怎么做
  • 马鞍山市网站建设WordPress4中文手册下载
  • 阿里云免费建站仿站 做网站
  • 凡科网建站怎么样用阿里云搭建WordPress
  • 学会网站建设方案如何做网上私人彩票网站
  • 建设工程168网站小程序外包公司发展前景
  • 微信手机网站流程下载asp做网站
  • 湖州企业网站开发公司怎么做钓鱼网站生成
  • 十大免费erp软件搜索引擎优化培训班
  • 深圳罗湖区住房和建设局网站农林牧渔行业网站建设
  • 淮安神舟建设招标网站常用的seo网站优化排名
  • 网站运行速度慢的原因南山商城网站建设哪家服务周到
  • 芜湖龙湖建设网站建设银行如何招聘网站
  • 网站修改wordpress外部链接
  • 温州网站建设方案案例设计公众号商城
  • 海南住房与城乡建设网站自己做的网站 能收索么
  • 如何做网站推广及优化大数据分析网站
  • 成都微网站建设加强网站互动交流平台建设自查
  • 做网站运营有前景么WordPress图床源码
  • 东南亚做网站 什么语言百度广告位价格表
  • 上海建设局网站首页程序员怎么用wordpress
  • 南宁seo管理临沂seo公司稳健火星
  • 简述电子商务网站开发的基本原则视觉传达设计与人工智能
  • 网站为什么要挂服务器上工商网企业信息查询
  • 小型网站开发开题报告范文常见的电子商务网站推广方式
  • 如何将自己 做的网站发布网上机械加工图纸标注符号大全
  • 如何查看网站开发单位网络推广和竞价推广有什么区别
  • 建设一个网站的技术可行性研究网站续费话术