浅谈jsoncpp及实现服务器客户端之间json包传输

本文介绍了JSON作为数据交换格式的优势,对比了JSON与XML的区别,并提供了JSONcpp在客户端与服务器间传输JSON包的简单示例代码。强调了JSON的简洁性和易读性,以及在数据传输中的广泛应用。
摘要由CSDN通过智能技术生成

JSON是什么?

JSON 是一种用于数据交换的文本格式(本质是一种文件组织方式,比如你熟悉的txt, csv, doc,docx文件等等),目的是取代繁琐笨重的XML格式。这种格式不仅人很容易进行阅读和编写,同时机器也很容易解析和生成,是当前十分流行的数据格式,尤其是在前端领域。JSON是一种传递对象的语法,对象可以是name/value对、数组其他对象,现在浏览器都自带json解析。

简单来说json就是一种客户端与服务器都可以识别及解析的数据格式,避免了难以定义数据格式的麻烦。比如:如果你每个客户端想给服务器一次发送名称,年龄,密码等信息,那么服务器用什么数据结构来接收呢?有人就说用结构体,但是结构体中各个变量我们定义多大呢?是吧,多大都不合适,所以有了json这种统一的数据格式,双方都根据json的规则进行解析就可以获取到双方发送的字节流(网络中用字节流传输),而不必为定义每个数据的大小而苦恼(相当于发送接收都是一个json对象不存在大小不一致)。可以将json理解为一个容器,我们按照容器的打开方式就可以打开容器获取到数据。

举个栗子(下面提供一小段json代码)? 

{
    "firstname":"John",
    "lastname":"smith",
    "isAlive":true,
    "age":25,
    "address":{
     "streetaddress":"21 street",   //街道地址
     "city":"XI'AN",       //城市地址
    },
    "phonenum":{
    {
        "type":"home",  //家庭电话
        "number": "212555666" 
    },
    {
        "type":"office",  //公司电话
        "number":"645111999"
    }      
    },
    "children":{
    [{"name":"mary","age",2},{"name":"bob","age":4}]  //数组
    },
    "spouse":null
}

这是个json,存储的数据描述了一个人John Smith的一些个人信息,比如姓名,是否活着,年龄,地址以及电话号码等信息。其中,地址address和电话号码phonenum呢,下面又包含了街道、城市,家庭电话、办公电话信息。

如果之前只接触过存储在Excel或者sql server等结构化数据库中的结构化数据,那么第一次看到json格式的数据,一定觉得很新颖。这种数据组织方式,条理清晰,能更好的表示自然界中人或物等实体的属性关系。可以理解为一种树状结构,一棵有枝干,枝干上有叶子的树。

你看懂了吧?那么当你再看到它时就知道它是JSON了。主要部分:

花括弧,方括号,冒号和逗号

  • 花括弧表示一个“容器”
  • 方括号装载数组
  • 名称和值用冒号隔开
  • 数组元素通过逗号隔开

区分json和XML?

<1>什么是XML?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值