从0开始学习JSON库(一)

本文从零开始介绍如何学习JSON库,包括理解JSON的基本概念、数据类型,以及解析null和boolean的初步实践。通过跟随教程,作者使用google C++ test进行单元测试,并分享了编译及编写测试时遇到的问题和解决方法。
摘要由CSDN通过智能技术生成

从零开始学习JSON库(一)

  • LINDA
  • 2018/5/8

源码链接

前几天看了叶神的知乎专栏从零开始的JSON库教程,叶老师很详尽地跟我们讲解一个项目的正确打开方式:
1. 要做一个项目首先要知道做什么,即项目要实现的协议是怎么样的,可以先看相关的RFC文档。
2. 知道大概要做什么了,我们先从简单的入手,构思相应的数据结构,函数接口,罗列出来。
3. 先写对应接口的单元测试,当然,我们不可能一下子就把所有测试都想到,先写一部分能想到的。
4. 把相应接口实现,看测试能否通过,测试通过了,思考是否实现过于繁琐,能不能通过重构简化接口。在写接口时,对于一些正确情况下不可能出现的条件要设断言,这样在重构时才能避免一些错误。
5. 测试通过后,进行下一个接口的实现,重复2-4.

我跟着老师的步骤把过程走了一遍,还是觉得应该自己从0开始实现一个JSON库,这样才能发现自己有哪些没掌握,并学学老师的写作排版。好,我要开动来(^o^)/~
注:引用为叶老师教程里的部分原文。

JSON是什么

JSON(JavaScript Object Notation)是一个用于数据交换的文本格式,的标准为ECMA-404。虽然 JSON 源至于 JavaScript 语言,但它只是一种数据格式,可用于任何编程语言。现时具类似功能的格式有 XML、YAML,当中以 JSON 的语法最为简单。

例如,一个动态网页想从服务器获得数据时,服务器从数据库查找数据,然后把数据转换成 JSON 文本格式:

{
    "title": "Design Patterns",
    "subtitle": "Elements of Reusable Object-Oriented Software",
    "author": [
        "Erich Gamma",
        "Richard Helm",
        "Ralph Johnson",
        "John Vlissides"
    ],
    "year": 2009,
    "weight": 1.8,
    "hardcover": true,
    "publisher": {
        "Company": "Pearson Education",
        "Country": "India"
    },
    "website": null
}

网页的脚本代码就可以把此 JSON 文本解析为内部的数据结构去使用。
从此例子可看出,JSON 是树状结构,而 JSON 只包含 6 种数据类型:

  • null: 表示为 null
  • boolean: 表示为 true 或 false
  • number: 一般的浮点数表示方式,在下一单元详细说明
  • string: 表示为 “…”
  • array: 表示为 [ … ]
  • object: 表示为 { … }

我们要实现的 JSON 库,主要是完成 3 个需求:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值