JSON(JavaScript Object Notation,JS 對(duì)象表述法)中的對(duì)象是對(duì)于一組無序的鍵值對(duì)的描述,很適合在web中傳輸數(shù)據(jù)。C 語言是一種常用的高級(jí)語言,也常用于編寫程序中對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作的代碼,那如何用 C 語言構(gòu)造 JSON 對(duì)象呢?
將數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為 JSON 對(duì)象,需要將數(shù)據(jù)結(jié)構(gòu)中的“鍵值”映射到 JSON 對(duì)象中的“鍵值對(duì)”,因此 C 語言中的結(jié)構(gòu)體和聯(lián)合體都可以被用于構(gòu)造 JSON 對(duì)象。首先需要包含 cJSON 頭文件,這是一個(gè)輕量級(jí)的 JSON 解析庫,可以幫助解析 JSON 文件。
#include "cJSON.h"
下面是一個(gè)使用 cJSON 構(gòu)造 JSON 對(duì)象的例子,需要以 cJSON_CreateObject() 創(chuàng)建 JSON 對(duì)象并檢查是否創(chuàng)建成功,然后使用 cJSON_AddItemToObject() 添加一些鍵值。例如下面的代碼演示了如何生成一個(gè)包含 name、age 和 id 的 JSON 對(duì)象:
cJSON *root = cJSON_CreateObject(); if (root) { cJSON_AddStringToObject(root, "name", "Tom"); cJSON_AddNumberToObject(root, "age", 26); cJSON_AddNumberToObject(root, "id", 1234567); }
上面的代碼中,使用 cJSON_CreateObject() 來創(chuàng)建 JSON 對(duì)象,然后將三個(gè)鍵值對(duì)添加到 JSON 對(duì)象中,其中 cJSON_AddStringToObject() 添加一個(gè)字符串類型的鍵值對(duì),而 cJSON_AddNumberToObject() 添加一個(gè)數(shù)值類型的鍵值對(duì)。
如果要在 JSON 對(duì)象中創(chuàng)建一個(gè)數(shù)組,可以使用 cJSON_CreateArray() 創(chuàng)建一個(gè)空的 JSON 數(shù)組,并使用 cJSON_AddItemToArray() 添加元素:
cJSON *array = cJSON_CreateArray(); if (array) { cJSON *item = cJSON_CreateObject(); cJSON_AddStringToObject(item, "name", "Tom"); cJSON_AddNumberToObject(item, "age", 26); cJSON_AddItemToArray(array, item); }
在上面的代碼中,使用 cJSON_CreateArray() 創(chuàng)建一個(gè)空的 JSON 數(shù)組,然后使用 cJSON_CreateObject() 創(chuàng)建一個(gè)新的 JSON 對(duì)象作為數(shù)組中的元素,將鍵值對(duì)添加到其中,最后使用 cJSON_AddItemToArray() 將元素添加到數(shù)組中。
至此,我們已經(jīng)掌握了如何使用 cJSON 在 C 語言中構(gòu)造 JSON 對(duì)象。