JSON格式笔记

1.简介

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。

2.JSON 基本语法

  • 数据以**key :value**(名称/值) 的形式存在
  • 数据由逗号**,**分隔
  • 大括号**{}**保存对象
  • 中括号**[]**保存数组,数组可以包含多个对象

3.基本数据类型

一共有6种基本数据类型:

4.cJSON的基本数据结构

|-------------------------------------------------------------------------------|------------------------|
| cJSON_Parse(const char *value) | 解析字符串为json格式 |
| cJSON_ParseWithLength(const char *value, size_t buffer_length) | 解析字符串为json格式(指定长度) |
| cJSON_GetErrorPtr(void) | 获取解析失败信息 |
| cJSON_Print(const cJSON *item) | 返回格式化json字符串 |
| cJSON_PrintUnformatted(const cJSON *item) | 返回未格式化json字符串 |
| cJSON_GetArraySize(const cJSON *array) | 获取json数组大小 |
| cJSON_GetArrayItem(const cJSON *array, int index) | 获取对应数组下标 |
| cJSON_GetObjectItem(const cJSON * const object, const char * const string) | 根据名称获取json键值 |
| cJSON_Is{}(const cJSON * const item) | 判断该项类型,详情查看 cJSON Type |
| cJSON_Create{}() | 创建对应cjson对象,包括单独键值对,数组 |
| cJSON_AddItemToArray(cJSON *array, cJSON *item) | 添加数组 |
| cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item) | 添加对象 |
| cJSON_InsertItemInArray(cJSON *array, int which, cJSON *newitem) | 数组中插入新数据 |
| cJSON_ReplaceItemInArray(cJSON *array, int which, cJSON *newitem); | 数组中替换(更新) |
| cJSON_ReplaceItemInObject(cJSON *object,const char *string,cJSON *newitem) | 对象替换 |
| cJSON_Add{}ToObject() | 添加数据到对应层级 |
| cJSON_malloc(size_t size) | 申请内存 |
| cJSON_free(void *object) | 释放申请内存 |
| cJSON_Delete(cJSON *item) | 释放 cjson 内存,删除自身和子集 |

5.cJSON示例

https://github.com/1358484518/websocketshttps://github.com/1358484518/websockets