cJSON使用方法

  1 #include <iostream>
  2 #include "cJSON.h"
  3 
  4 using namespace std;
  5 
  6 //1.一个简单的JSON键值对构建
  7 void Create_Simple_JSON(void)
  8 {
  9     cJSON *root;
 10     root = cJSON_CreateObject();//创建一个json对象
 11     cJSON_AddItemToObject(root, "CSDN", cJSON_CreateString("https://blog.csdn.net/whik1194"));
 12     cJSON_AddItemToObject(root, "cnblogs", cJSON_CreateString("https://home.cnblogs.com/u/whik/"));
 13     cJSON_AddItemToObject(root, "Github", cJSON_CreateString("https://github.com/whik/"));
 14     cJSON_AddStringToObject(root, "Blog", "http://www.wangchaochao.top/");
 15 
 16     printf("构建的JSON:\n%s\n", cJSON_Print(root));
 17     cJSON_Delete(root);
 18 }
 19 
 20 //2.键的值是一个JSON对象
 21 void Create_BJTime_JSON(void)
 22 {
 23 
 24     cJSON *root;
 25     cJSON *result;
 26 
 27     root = cJSON_CreateObject();//创建一个json对象
 28 
 29     result = cJSON_CreateObject();
 30     //result构建
 31 
 32     cJSON_AddStringToObject(result, "timestamp", "ok");
 33     cJSON_AddStringToObject(result, "datetime_1", "2019-07-21 10:46:57");
 34     cJSON_AddStringToObject(result, "datetime_2", "2019年07月21日 10时46分57秒");
 35     cJSON_AddStringToObject(result, "week_1", "0");
 36     cJSON_AddStringToObject(result, "week_2", "星期日");
 37     cJSON_AddStringToObject(result, "week_3", "周日");
 38     cJSON_AddStringToObject(result, "week_4", "Sunday");
 39 
 40     cJSON_AddStringToObject(root, "status", "success");
 41     cJSON_AddItemToObject(root, "result", result);
 42     cJSON_AddStringToObject(root, "Blog", "www.wangchaochao.top");
 43 
 44     printf("构建的JSON:\n%s\n", cJSON_Print(root));
 45     cJSON_Delete(root);
 46 }
 47 
 48 //3.JSON数组,元素是字符串
 49 void Create_Array_Str_JSON(void)
 50 {
 51     cJSON *root;
 52     const char *strings[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
 53 
 54     root=cJSON_CreateStringArray(strings,7);
 55 
 56     printf("%s\n",cJSON_Print(root));
 57     cJSON_Delete(root);
 58 }
 59 
 60 //4.键的值是一个数组,数组包含多个对象元素
 61 void Create_Array_JSON(void)
 62 {
 63     cJSON *root;
 64     cJSON *forceast;
 65     cJSON *day1, *day2, *day3;  //数组
 66 
 67     day1 = cJSON_CreateObject();
 68     day2 = cJSON_CreateObject();
 69     day3 = cJSON_CreateObject();
 70 
 71     cJSON_AddStringToObject(day1, "date", "2019-07-21");    //日期
 72     cJSON_AddStringToObject(day1, "cond_txt", "多云");      //天气状况
 73     cJSON_AddStringToObject(day1, "cond_code", "101");      //天气代码
 74     cJSON_AddStringToObject(day1, "hum", "23");             //湿度
 75     cJSON_AddStringToObject(day1, "tmp_H", "31");           //最高温度
 76     cJSON_AddStringToObject(day1, "tmp_L", "25");           //最低温度
 77 
 78     cJSON_AddStringToObject(day2, "date", "2019-07-22");
 79     cJSON_AddStringToObject(day2, "cond_txt", "晴");
 80     cJSON_AddStringToObject(day2, "cond_code", "100");
 81     cJSON_AddStringToObject(day2, "hum", "20");
 82     cJSON_AddStringToObject(day2, "tmp_H", "33");
 83     cJSON_AddStringToObject(day2, "tmp_L", "26");
 84 
 85     cJSON_AddStringToObject(day3, "date", "2019-07-23");
 86     cJSON_AddStringToObject(day3, "cond_txt", "阵雨");
 87     cJSON_AddStringToObject(day3, "cond_code", "107");
 88     cJSON_AddStringToObject(day3, "hum", "45");
 89     cJSON_AddStringToObject(day3, "tmp_H", "32");
 90     cJSON_AddStringToObject(day3, "tmp_L", "25");
 91 
 92     forceast = cJSON_CreateArray();
 93     //注意顺序,索引依次递增
 94     cJSON_AddItemToArray(forceast, day1);   //元素0
 95     cJSON_AddItemToArray(forceast, day2);   //元素1
 96     cJSON_AddItemToArray(forceast, day3);   //元素2
 97 
 98     root = cJSON_CreateObject();    //创建一个json对象
 99 
100     cJSON_AddStringToObject(root, "status", "ok");
101     cJSON_AddItemToObject(root, "weather", forceast);
102     cJSON_AddStringToObject(root, "update", "2019-07-21 11:00");
103     cJSON_AddStringToObject(root, "Blog", "www.wangchaochao.top");
104     //等效于:cJSON_AddItemToObject(root, "update", cJSON_CreateString("2019-07-21 11:00");
105 
106     printf("构建的JSON:\n%s\n", cJSON_Print(root));
107     cJSON_Delete(root);
108 }
109 
110 //5.数组内嵌套了5个数组,每个数组内有5个字符串元素
111 void Create_Array_Nest_JSON(void)
112 {
113     struct oil_stu{
114         char *city;          //城市名称
115         char *oil_92_price;  //92号汽油价格
116         char *oil_95_price;
117         char *oil_98_price;
118         char *oil_0_price;
119     };
120 
121     cJSON *root;
122     cJSON *data;  //包含多个数组
123     cJSON *table, *data_bj, *data_sh, *data_js, *data_tj;
124 
125     const char *bj_str[5] = {"北京", "6.78", "7.21", "8.19", "6.45"};
126     const char *sh_str[5] = {"上海", "6.74", "7.17", "7.87", "6.39"};
127     const char *js_str[5] = {"江苏", "6.75", "7.18", "8.06", "6.37"};
128     const char *tj_str[5] = {"天津", "6.77", "7.15", "8.07", "6.41"};
129     const char *talbe_str[5] = {"地区", "92号汽油", "95号汽油", "98号汽油", "0号柴油"};
130 
131     data_bj = cJSON_CreateStringArray(bj_str, 5);   //只包含5个字符串的数组
132     data_sh = cJSON_CreateStringArray(sh_str, 5);
133     data_js = cJSON_CreateStringArray(js_str, 5);
134     data_tj = cJSON_CreateStringArray(tj_str, 5);
135     table   = cJSON_CreateStringArray(talbe_str, 5);
136 
137     data = cJSON_CreateArray();
138     cJSON_AddItemToArray(data, table);
139     cJSON_AddItemToArray(data, data_bj);
140     cJSON_AddItemToArray(data, data_sh);
141     cJSON_AddItemToArray(data, data_js);
142     cJSON_AddItemToArray(data, data_tj);
143 
144     root = cJSON_CreateObject();
145 
146     cJSON_AddStringToObject(root, "status", "ok");
147     cJSON_AddStringToObject(root, "msg", "2019-07-21 11:00");
148     cJSON_AddStringToObject(root, "update", "2019-07-21 11:00");
149     cJSON_AddItemToObject(root, "data", data);
150     cJSON_AddStringToObject(root, "About", "wcc");
151     cJSON_AddStringToObject(root, "Blog", "www.wangchaochao.top");
152 
153     printf("构建的JSON:\n%s\n", cJSON_Print(root));
154     cJSON_Delete(root);
155 }
156 
157 int main() {
158     Create_Simple_JSON();
159     cout << endl << endl;
160     Create_BJTime_JSON();
161     cout << endl << endl;
162     Create_Array_Str_JSON();
163     cout << endl << endl;
164     Create_Array_JSON();
165     cout << endl << endl;
166     Create_Array_Nest_JSON();
167     return 0;
168 }

 

上一篇:cJSON的简单使用


下一篇:cJSON使用文档——超详细