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

中国互联网站建设中心建站中心学php网站开发

中国互联网站建设中心建站中心,学php网站开发,网址生成app一键生成器,怎么登陆自己建的网站C/C 中 JSON 库的使用 #xff08;CJSON/nlohmann#xff09;概述cjson基本操作从(字符指针)缓冲区中解析出JSON结构转成成JS字符串(将传入的JSON结构转化为字符串)将JSON结构所占用的数据空间释放JSON 值的创建创建一个值类型的数据创建一个对象#xff08;文档#xff09… C/C 中 JSON 库的使用 CJSON/nlohmann概述cjson基本操作从(字符指针)缓冲区中解析出JSON结构转成成JS字符串(将传入的JSON结构转化为字符串)将JSON结构所占用的数据空间释放JSON 值的创建创建一个值类型的数据创建一个对象文档数组创建以及添加JSON嵌套向对象中增加键值对向数组中增加对象几个能提高操作效率的宏函数查找JSON值根据键找json结点判断是否有key是string的项返回数组结点array中成员的个数根据数组下标index取array数组结点的第index个成员遍历数组nlohmannnlohmann库使用代码示例概述 纯C环境中使用cjson库,C环境中也可以使用nlohmann库本文介绍基本的使用场景如需更详细的介绍可以查看库官方文档。 nlohmann: nlohmann库https://github.com/nlohmann/json提供了丰富而且符合直觉的接口https://json.nlohmann.me/api/basic_json/只需导入头文件即可使用方便整合到项目中。 CJSON: JSON JavaScript Object Notation(JavaScript 对象表示法)是轻量级的存储和交换文本信息的语法类似 XML . 特点是纯文本纯字符串、层级结构、使用数组。 cJson一个基于 C 语言的 Json 库它是一个开源项目github 下载地址https://github.com/DaveGamble/cJSON cJson库组成主要的文件有两个一个 cJSON.c 一个 cJSON.h。使用时将头文件 include 进去即可 cjson typedef struct cJSON { //cJSON结构体struct cJSON*next,*prev; /* 遍历数组或对象链的前向或后向链表指针*/struct cJSON *child; /*数组或对象的孩子节点*/int type; /* key的类型*/char *valuestring; /*字符串值*/int valueint; /* 整数值*/double valuedouble; /* 浮点数值*/char *string; /* key的名字*/ } cJSON_st;基本操作 从(字符指针)缓冲区中解析出JSON结构 extern cJSON *cJSON_Parse(const char *value);        //解析一块JSON数据返回cJSON结构 在使用完之后调用cJSON_Delete函数释放json对象结构。解析JSON数据包并按照cJSON结构体的结构序列化整个数据包。 使用该函数会通过malloc函数在内存中开辟一个空间使用完成需要手动释放。 转成成JS字符串(将传入的JSON结构转化为字符串) extern char *cJSON_Print(cJSON *item); //可用于输出到输出设备 使用完之后free(char *) cJSON_PrintUnformattedcJSON *item; //类似没有格式即转换出的字符串中间不会有\n \t之类的东西存在. 将JSON结构所占用的数据空间释放 void cJSON_Delete(cJSON *c) //会将其下的所有节点的资源一并释放掉 JSON 值的创建 创建一个值类型的数据 extern cJSON *cJSON_CreateNumber(double num);//创建 extern cJSON *cJSON_CreateString(const char *string); //创建 extern cJSON *cJSON_CreateArray(void); //创建json数组创建一个对象文档 extern cJSON *cJSON_CreateObject(void); //创建一个根数据项之后便可向该根数据项中添加string或int等内容 数组创建以及添加 cJSON *cJSON_CreateIntArray(const int *numbers,int count);void cJSON_AddItemToArray(cJSON *array, cJSON *item); JSON嵌套 向对象中增加键值对 cJSON_AddItemToObject(root, rows, 值类型数据相关函数());向对象中增加数组 cJSON_AddItemToObject(root, rows, cJSON_CreateArray()); //创建一个根数据项之后便可向该根数据项中添加string或int等内容 向数组中增加对象 cJSON_AddItemToArray(rows, cJSON_CreateObject()); //向json数组中增加元素/对象几个能提高操作效率的宏函数 #define cJSON_AddNumberToObject(object,name,n) cJSON_AddItemToObject(object, name,cJSON_CreateNumber(n)) //向json对象中添加数字节点名and节点值#define cJSON_AddStringToObject(object,name,s) cJSON_AddItemToObject(object, name, cJSON_CreateString(s)) // 向json对象中添加字符串查找JSON值 根据键找json结点 extern cJSON *cJSON_GetObjectItem(cJSON *object,const char*string) //从cJSON结构体中查找某个子节点名称键名称如果查找成功可把该子节点序列化到cJSON结构体中。 判断是否有key是string的项 extern int cJSON_HasObjectItem(cJSON *object,const char *string){ return cJSON_GetObjectItem(object,string)?1:0; } //如果有返回1 否则返回0 返回数组结点array中成员的个数 extern int cJSON_GetArraySize(cJSON *array); 根据数组下标index取array数组结点的第index个成员 extern cJSON *cJSON_GetArrayItem(cJSON *array,int index); //返回该成员节点 遍历数组 #define cJSON_ArrayForEach(pos, head) for(pos (head)-child; pos ! NULL; pos pos-next)  cJSON_ReplaceItemInObject(json,data,cJSON_CreateString(hello)) //用于代替json对象中data元组的值 nlohmann 使用方式比较简单下面直接通过示例来说明. nlohmann库使用代码示例 #pragma once#include iostream #include fstream #include string #include nlohmann/json.hppstatic bool JsonConfigInit(const std::string config_file)bool ret false;std::ifstream cfg_file(config_file);if (!cfg_file.is_open()) {nlohmann::json configjson; //创建一个空结构configjson[config_settings] { {bool_value, true},{file_size, 15},{info_file, ./tmp.ini}};//对对象进行初始化std::ofstream(config_file.c_str()) configjson;std::cout create config json file std::endl;return false;}try{std::cout JsonConfigInit from \ config_file \ std::endl;const nlohmann::json file_json nlohmann::json::parse(cfg_file);//判断首节点是否存在if(file_json.is_null() || (file_json.contains(config_settings) false ) || file_json.at(config_settings).size() 0){ret false; goto json_end;}nlohmann::json set_json file_json.at(config_settings); // 获取相应的键值对get_to必须保证双方类型一致否则极易出现段错误bool m_json_bool;int m_json_number;std::string m_json_string ;if(set_json.at(bool_value).is_boolean()){set_json.at(bool_value).get_to(m_json_bool);}if(set_json.at(file_size).is_number()){set_json.at(file_size).get_to(m_json_number);}if(set_json.at(info_file).is_string()){set_json.at(info_file).get_to(m_json_string);}ret true;}}catch (nlohmann::json::parse_error ex){ std::cerr JsonConfigInit failed:parse error ! ! reason: [ ex.what() ] std::endl;}catch (nlohmann::json::exception ex){std::cerr JsonConfigInit parse_json parse fail! reason: [ ex.what() ] std::endl;}json_end: cfg_file.close();return ret;}
http://www.hkea.cn/news/14264498/

相关文章:

  • 网站建设的销售术语wordpress 主题 教程
  • mvc网站开发视频教程江苏南京建设工程信息网站
  • 短租房网站哪家做最好网站备案号 查询
  • 做中考试卷的网站温州公司网站建设
  • p2p网站制作 杭州无锡seo
  • 可信网站认证价格什么网站做简历好
  • 盐城做企业网站的价格108社区找工作
  • h5 php mysql网站开发免费的cms视频网站模板
  • 如何做商城网站建设行政主管部门政务网站
  • 自学网站建设和seo安溪网站建设
  • 合肥网站建设找佳达html网页简单
  • 做列表的网站怎么看网站有没有做竞价
  • 模板下载网站织梦模板商品房合同备案查询
  • 做一个简单的网站要多少钱wordpress 邀请码注册衔接
  • 洛阳建设企业网站crm客户关系管理系统平台
  • 农村网站建设茂名seo综合查询网站源码
  • 网站优化推广公司深圳工程招标交易网
  • 龙井网站建设全国物流信息网
  • 网站销户说明长春今天最新通告
  • 千博企业网站管理系统 后台拿shell辽宁建设工程信息网a类业绩
  • 在线做头像网站张家界网站建设的公司
  • 做网站的那些高清图上哪里找抖音广告投放 网页制作教程
  • 比较好看的网站软件开发工程师证书含金量高吗
  • 北京招聘网站设计师品牌高端网站
  • 世界之窗附近做网站公司新能源汽车前十名品牌
  • 广州网站seo优化排名西安网站优化体验
  • 建网站商城有哪些公司2022注册公司取名
  • 如何建设一个网站站wordpress经典编辑器没有
  • 公司网站建设基本流程图响站怎么建设网站
  • 怎么建设一个网站并顺利打开浏览长沙网上购物超市