JSON---(1)简介

声明:

Author:赵志乾

Date:2017-8-5

Declaration:All Right Reserved!!!


1、JSON是一种轻量级的数据交换格式。

    数据交换格式是一种文本格式,用于在不同平台之间交换数据(如JSON格式和XML格式)。作为数据交换格式的JSON是独立于语言的,因此可以在自己的应用中使用JSON格式同其他应用进行交互。

2、几个常用的概念

JSON:JavaScript对象表示法(JavaScript Object Notation)

表示法:用于表示数字、单词等数据的字符系统

数据交换格式:用于不同平台或系统间交换数据的文本格式

3、JSON的语法

    JSON采用键值对的方法来表示对象,并且键和值使用冒号进行分割。其中键在左侧且用双引号包裹,值在右侧,表示方法取决于值的具体类型。当键值对的键名称被加载入内存后,其将会成为对象的属性字段。

    JSON格式表示的对象用花括号进行包裹,各个键值对之间用逗号进行分割。

    JSON这种数据交换格式可以作为独立的文件存放于文件系统。其扩展名为.json。

    数据传递的时候,需要提前告知接收方数据是什么类型的,即媒体类型(MIME类型)。JSON的媒体类型为Application/json。

4、JSON的数据类型

JSON中的数据类型包括:对象、数字、字符串、布尔值、null、数组。

JSON中的对象表示:使用花括号包裹。示例如下:

{
   "name":"zhaozhiqian",
   "age":1,
   "boy":true,
   "car":null,
   "role":[
             "programmer",
             "student"
	  ]
}

    JSON中的字符串表示:使用双引号包裹。如果字符串值中包含双引号,则需要使用反斜杠对内部双引号进行转义。示例如上例中name值的表示方式。

    JSON中的数值类型:直接表示就行,如上例中age值的表示方式。

    JSON中的布尔类型:只能使用小写的true和false两种表示。如上例中boy值的表示方式。

    JSON中的null:只能使用小写的null表示,意思是没有值。如上例中的car值的表示方式。

    JSON中的数组类型:使用方括号包裹,各项之间使用逗号分隔。如上例中role值的表示方式。



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
nlohmann/json库是一个用于处理JSON数据的C++库,它提供了一些常用的方法和技巧。可以通过使用find_package命令引用nlohmann/json库,并在CMake项目中添加库的依赖。具体的方法是使用find_package(nlohmann_json 3.2.0 REQUIRED)命令进行引用,并通过target_link_libraries命令将库链接到你的项目中。 在使用nlohmann-json库时,可以通过定义类型、构造JSON结构以及与结构体关联来实现操作。针对结构体中的每个结构,需要编写一个to_json函数来实现转换。需要注意的是,对于每个自定义的结构,都需要提供to_json函数的实现。 举个例子,你可以使用以下代码来测试nlohmann-json库的读取功能: ```cpp int main(int argc, char **argv) { wb::Person wb = {"wb", 18, true, {"football", "reading"}, {{"house", 9999}, {"car", 8888}}}; if (std::fstream ofs("output.json", std::ios::out); ofs) { json j; wb::to_json(j, wb); ofs << j.dump(4) << '\n'; // 缩进为4的JSON格式 } return 0; } ``` 这段代码创建了一个名为wb的Person结构体对象,并将其转换为JSON格式并保存到output.json文件中。你可以根据需求自行修改代码以适应你的具体情况。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [nlohmann-json库使用简介](https://blog.csdn.net/wbvalid/article/details/119781303)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [C++的nlohmann-json](https://blog.csdn.net/knowledgebao/article/details/122075687)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我叫白小猿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值