cJSON结构体构建
cJSON结构体构建
一:cJSON的构建。
1 int create_objects() 2 { 3 cJSON *root, *fmt, *img, *thm, *fld; 4 char *out; 5 int i; /* The index number. */ 6 int ret = 0; 7 8 /* Here we construct several JSON objects. */ 9 10 // ------------------构建第1个---------------------- 11 /* The "Video" data type: */ 12 root = cJSON_CreateObject(); 13 cJSON_AddItemToObject(root, "name", cJSON_CreateString("Jack (\"Bee\") Nimble")); 14 cJSON_AddItemToObject(root, "format", fmt = cJSON_CreateObject()); 15 cJSON_AddStringToObject(fmt, "type", "rect"); 16 cJSON_AddNumberToObject(fmt, "width", 1920); 17 cJSON_AddNumberToObject(fmt, "height", 1080); 18 cJSON_AddFalseToObject (fmt, "interlace"); 19 cJSON_AddNumberToObject(fmt, "frame rate", 24); 20 21 out = cJSON_Print(root); /* Print to text */ 22 cJSON_Delete(root); /* Delete the cJSON object */ 23 LOG_I(cjson_example, "%s\n", out); /* Print out the text */ 24 cJSON_free(out); /* Release the string. */ 25 26 // ------------------构建第2个---------------------- 27 /* The "days of the week" array: */ 28 const char *strings[7] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; 29 root = cJSON_CreateStringArray(strings, 7); 30 31 out = cJSON_Print(root); 32 cJSON_Delete(root); 33 LOG_I(cjson_example, "%s\n", out); 34 cJSON_free(out); 35 36 // ------------------构建第3个---------------------- 37 /* The matrix: */ 38 int numbers[3][3] = {{0, -1, 0}, {1, 0, 0}, {0, 0, 1}}; 39 root = cJSON_CreateArray(); 40 for (i = 0; i < 3; i++) { 41 cJSON_AddItemToArray(root, cJSON_CreateIntArray(numbers[i], 3)); 42 } 43 44 /* cJSON_ReplaceItemInArray(root,1,cJSON_CreateString("Replacement")); */ 45 out = cJSON_Print(root); 46 cJSON_Delete(root); 47 LOG_I(cjson_example, "%s\n", out); 48 cJSON_free(out); 49 50 // ------------------构建第4个---------------------- 51 /* The "gallery" item: */ 52 int ids[4] = {116, 943, 234, 38793}; 53 root = cJSON_CreateObject(); 54 cJSON_AddItemToObject(root, "Image", img = cJSON_CreateObject()); 55 cJSON_AddNumberToObject(img, "Width", 800); 56 cJSON_AddNumberToObject(img, "Height", 600); 57 cJSON_AddStringToObject(img, "Title", "View from 15th Floor"); 58 cJSON_AddItemToObject(img, "Thumbnail", thm = cJSON_CreateObject()); 59 cJSON_AddStringToObject(thm, "Url", "http:/*www.example.com/image/481989943"); 60 cJSON_AddNumberToObject(thm, "Height", 125); 61 cJSON_AddStringToObject(thm, "Width", "100"); 62 cJSON_AddItemToObject(img, "IDs", cJSON_CreateIntArray(ids, 4)); 63 64 out = cJSON_Print(root); 65 cJSON_Delete(root); 66 LOG_I(cjson_example, "%s\n", out); 67 cJSON_free(out); 68 69 // ------------------构建第5个---------------------- 70 /* The array of "records": */ 71 struct record fields[2] = { 72 {"zip", 37.7668, -1.223959e+2, "", "SAN FRANCISCO", "CA", "94107", "US"}, 73 {"zip", 37.371991, -1.22026e+2, "", "SUNNYVALE", "CA", "94085", "US"} 74 }; 75 76 root = cJSON_CreateArray(); 77 for (i = 0; i < 2; i++) { 78 cJSON_AddItemToArray(root, fld = cJSON_CreateObject()); 79 cJSON_AddStringToObject(fld, "precision", fields[i].precision); 80 cJSON_AddNumberToObject(fld, "Latitude", fields[i].lat); 81 cJSON_AddNumberToObject(fld, "Longitude", fields[i].lon); 82 cJSON_AddStringToObject(fld, "Address", fields[i].address); 83 cJSON_AddStringToObject(fld, "City", fields[i].city); 84 cJSON_AddStringToObject(fld, "State", fields[i].state); 85 cJSON_AddStringToObject(fld, "Zip", fields[i].zip); 86 cJSON_AddStringToObject(fld, "Country", fields[i].country); 87 } 88 89 /* cJSON_ReplaceItemInObject(cJSON_GetArrayItem(root,1),"City",cJSON_CreateIntArray(ids,4)); */ 90 out = cJSON_Print(root); 91 cJSON_Delete(root); 92 LOG_I(cjson_example, "%s\n", out); 93 cJSON_free(out); 94 return ret; 95 }
二:打印如下
1 { 2 3 "name": "Jack (\"Bee\") Nimble", 4 5 "format": { 6 7 "type": "rect", 8 9 "width": 1920, 10 11 "height": 1080, 12 13 "interlace": false, 14 15 "frame rate": 24 16 17 } 18 19 } 20 21 ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] 22 23 [[0, -1, 0], [1, 0, 0], [0, 0, 1]] 24 25 { 26 27 "Image": { 28 29 "Width": 800, 30 31 "Height": 600, 32 33 "Title": "View from 15th Floor", 34 35 "Thumbnail": { 36 37 "Url": "http:/*www.example.com/image/481989943", 38 39 "Height": 125, 40 41 "Width": "100" 42 43 }, 44 45 "IDs": [116, 943, 234, 38793] 46 47 } 48 49 } 50 51 [{ 52 53 "precision": "zip", 54 55 "Latitude": 37.7668, 56 57 "Longitude": -122.3958999999999, 58 59 "Address": "", 60 61 "City": "SAN FRANCISCO", 62 63 "State": "CA", 64 65 "Zip": "94107", 66 67 "Country": "US" 68 69 }, { 70 71 "precision": "zip", 72 73 "Latitude": 37.371991, 74 75 "Longitude": -122.02 76 。。。