對于使用C語言來拼接多層JSON數(shù)據(jù)的開發(fā)者而言,JSON的格式是一種相對簡潔的數(shù)據(jù)交換格式,亦是RESTful Web Service(REST白皮書,提倡用它來作為Web Service的交換格式)的一種常見格式,深受廣大開發(fā)者的喜愛和使用。
在C語言中拼接多層JSON數(shù)據(jù),通常可以分成以下幾個步驟:
// 創(chuàng)建JSON Object cJSON *jsonObj = cJSON_CreateObject(); // 向JSON Object中添加key、value cJSON_AddStringToObject(jsonObj, "name", "John"); cJSON_AddNumberToObject(jsonObj, "age", 30); // 創(chuàng)建一個子JSON Object,并添加到父JSON Object中 cJSON *subObj = cJSON_CreateObject(); cJSON_AddStringToObject(subObj, "school", "Harvard"); cJSON_AddItemToObject(jsonObj, "education", subObj); // 創(chuàng)建一個JSON Array,并添加到父JSON Object中 cJSON *arrayObj = cJSON_CreateArray(); cJSON_AddStringToObject(arrayObj, "course", "Programming"); cJSON_AddStringToObject(arrayObj, "course", "Database"); cJSON_AddItemToObject(jsonObj, "courses", arrayObj); // 將JSON Object轉(zhuǎn)化為字符串 char *jsonStr = cJSON_Print(jsonObj); // 輸出結(jié)果 printf("%s", jsonStr); // 釋放內(nèi)存 cJSON_Delete(jsonObj);
一般情況下,JSON數(shù)據(jù)格式如下:
{ "name": "John", "age": 30, "education": { "school": "Harvard" }, "courses": [ "Programming", "Database" ] }
通過上述的步驟,即可拼接完成多層JSON數(shù)據(jù),方便地進行相應數(shù)據(jù)的傳送和交互。