使用cJSON库构建比较简单的JSON类型:
create_json.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>#include "cJSON.h"static int create_json_type_1(void)
{char *json_str = NULL;cJSON *root = NULL;root = cJSON_CreateObject();cJSON_AddItemToObject(root, "name", cJSON_CreateString("ZhangSan"));cJSON_AddItemToObject(root, "age", cJSON_CreateNumber(18));json_str = cJSON_Print(root);printf("%s\n\n", json_str);if (NULL != json_str)free(json_str);if (NULL != root)cJSON_Delete(root);return 0;
}static int create_json_type_2(void)
{ char *json_str = NULL;cJSON *root = NULL;cJSON *score = NULL;score = cJSON_CreateObject();cJSON_AddItemToObject(score, "name", cJSON_CreateString("LiSi"));cJSON_AddItemToObject(score, "math", cJSON_CreateNumber(100));cJSON_AddItemToObject(score, "english", cJSON_CreateNumber(90));root = cJSON_CreateObject();cJSON_AddItemToObject(root, "score", score);json_str = cJSON_Print(root);printf("%s\n\n", json_str);if (NULL != json_str)free(json_str);if (NULL != root)cJSON_Delete(root);return 0;
}static int create_json_type_3(void)
{int count = 0;char *json_str = NULL;cJSON *root = NULL;cJSON *fruit = NULL;const char *array[] = {"apple", "banana", "orange", "peach"};count = sizeof(array) / sizeof(array[0]);fruit = cJSON_CreateStringArray(array, count);root = cJSON_CreateObject();cJSON_AddItemToObject(root, "fruit", fruit);json_str = cJSON_Print(root);printf("%s\n\n", json_str);if (NULL != json_str)free(json_str);if (NULL != root)cJSON_Delete(root);return 0;
}static int create_json_type_4(void)
{char *json_str = NULL;cJSON *root = NULL;cJSON *item1 = NULL;cJSON *item2 = NULL;cJSON *language = NULL;item1 = cJSON_CreateObject();cJSON_AddItemToObject(item1, "Chinese", cJSON_CreateNumber(100));item2 = cJSON_CreateObject();cJSON_AddItemToObject(item2, "English", cJSON_CreateNumber(100));language = cJSON_CreateArray();cJSON_AddItemToArray(language, item1);cJSON_AddItemToArray(language, item2);root = cJSON_CreateObject();cJSON_AddItemToObject(root, "language", language);json_str = cJSON_Print(root);printf("%s\n\n", json_str);if (NULL != json_str)free(json_str);if (NULL != root)cJSON_Delete(root);return 0;
}int main(int argc, char *argv[])
{/* 形式一 */create_json_type_1();/* 形式二 */create_json_type_2();/* 形式三 */create_json_type_3();/* 形式四 */create_json_type_4();return 0;
}
-
形式一
-
形式二
-
形式三
-
形式四