网络数据交互格式

随着网络的不断扩张,网络数据变得纷繁复杂,网络交互的复杂性也越来越高

为了快速而简洁进行网络数据交互->各种各样的网络数据格式应运而生

从HTML -> XML -> JSON ...不断推陈出新..

重点是快速学习一个新的数据格式

1.Json(基于JsonCPP)

格式全称 JavaScript Object Notation

格式特点:

1、与开发语言无关

2、轻量级的数据存储格式

3、易于解析和封装

4、数据对象内部一般采用key-value模式来存储

5、支持数组、字符串、整数、小数、对象、布尔、空

6、可以用于数据传输、数据保存、数据交换

格式:

{

        "name":"张三",

        "age":21,

        "身高":180,

        "生日":"2000.01.01",

        "学校":"北大青鸟",

        "专业":["厨师","挖掘机"],

        "单身":true,

        "地址":null,

        "好友":{...}

}

项目编译:(编译成库)

不使用预编译头

使用:

1、包含头文件

2、包含库文件

3、使用Reader、Value类

Xml(基于.COM)

COM

组件化解决的问题是拿来就用,不需要太多的额外编译,就能进行适配

仅仅引用头文件,加上一个可运行的程序,就可以到处使用,随时引用

甚至不要头文件,直接拿来用

COM里面有接口规范,可以通过接口查询方法

有一个本地COM服务(微服务器),COM控件需要先注册后使用(dll库、ocx库)

ActiveX 把 COM 升级为 DCOM

MSXML 对应的头文件<msxml2.h>

IXMLDOMNode

IXMLDOMNodeList

IXMLDOMDocument2

/*头文件中,不能定义全局变量(除非加extern) 和 实现静态成员变量*/

#import "msxml3.dll"//COM专用的 属性包括no_namespace rename("EOF",adoEOF)
 //还可以引用类库 后面可以接属性
//#inport "libid:xxxxxx-xxxx-xxxx-xxxxxx" version("3.0") Icid("4") 
//dll ocx tlb olb  可以是相对路径  也可以是绝对路径
#include <msxl2.h>
#include <string>

//不同版本之间切换不用改代码
#if defined(UNICODE) || defined(_UNICODE)
    typedef std::wstring tstring;
#else
    typedef std::string tstring;
#endif

class CXmlNodeList;//预声明 告诉编译器,该定义会提前使用
//使用形式只有两种:引用、指针

//封装

class CXmlNode
{...}

class CXmlNodeList{...}

class CXmlDocument{...}

/*

文件加载失败要注意Com初始化情况

/表示从根节点去找        :从根节点查找faceconfig           /faceconfig

//表示当前节点下的任意节点        :查找所以的face节点         //face

. 表示当前节点        :当前节点下的所以face节点          .//face

.. 表示父节点        : 父节点下的所有face节点        ..//face

@表示满足属性条件   :查找id属性为1的所有节点 //face[@id="1"]   包含id属性的所有节点  //@id

取face节点的第二个         //face[2]

*/

宽字节转换:

std::string ToString(const std::wstring str){
    int len = WideCharToMultiByte(CP_ACP, 0, str.c_str(), -1, NULL, 0, NULL, NULL);
    std::string ret;
    if(len <= 0)return ret;
    ret.resize(len);
    WideCharToMultiByte(CP_ACP, 0, str.c_str(), -1, (char*)ret.c_str(), len, NULL, NULL);
    return ret;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

#A#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值