cJSON *parse_topic_metadata(struct buffer *resp) { int i, j, err_code, part_count, part_id, leader_id; int replica_count, *replicas, isr_count, *isr; char *topic; cJSON *topic_obj, *part_obj, *parts; topic_obj = cJSON_CreateObject(); err_code = read_int16_buffer(resp); topic = read_short_string_buffer(resp); part_count = read_int32_buffer(resp); cJSON_AddNumberToObject(topic_obj, "err_code", err_code); if (err_code > 0) { cJSON_AddStringToObject(topic_obj, "err_msg", err_map[err_code]); } cJSON_AddStringToObject(topic_obj, "name", topic); parts = cJSON_CreateArray(); cJSON_AddItemToObject(topic_obj, "partitions",parts); if (part_count == 0) return topic_obj; for(i = 0; i < part_count; i++) { part_obj = cJSON_CreateObject(); err_code = read_int16_buffer(resp); part_id = read_int32_buffer(resp); leader_id = read_int32_buffer(resp); cJSON_AddNumberToObject(part_obj, "err_code", err_code); if (err_code > 0) { cJSON_AddStringToObject(topic_obj, "err_msg", err_map[err_code]); } cJSON_AddNumberToObject(part_obj, "part_id", part_id); cJSON_AddNumberToObject(part_obj, "leader_id", leader_id); replica_count = read_int32_buffer(resp); replicas = malloc(replica_count * sizeof(int)); for (j = 0; j < replica_count; j++) { replicas[j] = read_int32_buffer(resp); } cJSON_AddItemToObject(part_obj, "replicas", cJSON_CreateIntArray(replicas, replica_count)); isr_count = read_int32_buffer(resp); isr = malloc(isr_count * sizeof(int)); for (j = 0; j < isr_count; j++) { isr[j] = read_int32_buffer(resp); } cJSON_AddItemToObject(part_obj, "isr", cJSON_CreateIntArray(replicas, replica_count)); cJSON_AddItemToArray(parts, part_obj); free(replicas); free(isr); } free(topic); return topic_obj; }
BOARD enviaPosicao(int fromX, int fromY,int toX,int toY,BOARD *Board) { cJSON *jogada; cJSON *saida; char retorno[10000]; int tamanho; int from[2]; from[0]=fromX; from[1]= fromY; int to[2]; to[0]=toX; to[1]=toY; jogada= cJSON_CreateObject(); char *name; cJSON_AddItemToObject(jogada, "from", cJSON_CreateIntArray(from,2)); cJSON_AddItemToObject(jogada, "to", cJSON_CreateIntArray(to,2)); name=cJSON_Print(jogada); if( send(s , name , strlen(name) , 0) < 0) { puts("Send failed"); Board= NULL; return *Board; } if((tamanho = recv(s , retorno , 10000 , 0)) == SOCKET_ERROR) { puts("recv failed"); Board=NULL; return *Board; } int i; retorno[tamanho]='\0'; saida=cJSON_Parse(retorno); name=cJSON_Print(saida); Board->whiteInfractions=cJSON_GetObjectItem(saida,"white_infractions")->valueint; Board->blackInfractions=cJSON_GetObjectItem(saida,"black_infractions")->valueint; Board->fiftymoves=cJSON_GetObjectItem(saida,"50moves")->valueint; Board->enpassant[0]=cJSON_GetObjectItem(saida,"enpassant")->valueint; Board->enpassant[1]=cJSON_GetObjectItem(saida,"enpassant")->next->valueint; Board->draw=cJSON_GetObjectItem(saida,"draw")->valueint; Board->badmove=cJSON_GetObjectItem(saida,"bad_move")->valueint; Board->winner= cJSON_GetObjectItem(saida,"winner")->valueint; for(i=0;i<BOARD_SIZE;i++) Board->board[i]=cJSON_GetObjectItem(saida,"board")->valuestring[i]; Board->whoMoves=cJSON_GetObjectItem(saida,"who_moves")->valueint; int whoMoves=Board->whoMoves; BoardParser(whoMoves,Board->board); return *Board; }
static void WriteShaderVar(ShaderVar* psVar, cJSON* obj) { cJSON_AddItemToObject(obj, "Name", cJSON_CreateString(psVar->Name)); if(psVar->haveDefaultValue) { cJSON_AddItemToObject(obj, "aui32DefaultValues", cJSON_CreateIntArray((int*)psVar->pui32DefaultValues, psVar->ui32Size/4)); } cJSON_AddItemToObject(obj, "ui32StartOffset", cJSON_CreateNumber(psVar->ui32StartOffset)); cJSON_AddItemToObject(obj, "ui32Size", cJSON_CreateNumber(psVar->ui32Size)); }
LIBCOUCHBASE_API char * lcbvb_save_json(lcbvb_CONFIG *cfg) { unsigned ii; char *ret; cJSON *tmp = NULL, *nodes = NULL; cJSON *root = cJSON_CreateObject(); if (cfg->dtype == LCBVB_DIST_VBUCKET) { tmp = cJSON_CreateString("vbucket"); } else { tmp = cJSON_CreateString("ketama"); } cJSON_AddItemToObject(root, "nodeLocator", tmp); if (cfg->buuid) { tmp = cJSON_CreateString(cfg->buuid); cJSON_AddItemToObject(root, "uuid", tmp); } if (cfg->revid > -1) { tmp = cJSON_CreateNumber(cfg->revid); cJSON_AddItemToObject(root, "rev", tmp); } tmp = cJSON_CreateString(cfg->bname); cJSON_AddItemToObject(root, "name", tmp); nodes = cJSON_CreateArray(); cJSON_AddItemToObject(root, "nodesExt", nodes); for (ii = 0; ii < cfg->nsrv; ii++) { cJSON *sj = cJSON_CreateObject(), *jsvc = cJSON_CreateObject(); lcbvb_SERVER *srv = cfg->servers + ii; tmp = cJSON_CreateString(srv->hostname); cJSON_AddItemToObject(sj, "hostname", tmp); svcs_to_json(&srv->svc, jsvc, 0); svcs_to_json(&srv->svc_ssl, jsvc, 1); /* add the services to the server */ cJSON_AddItemToObject(sj, "services", jsvc); cJSON_AddItemToArray(nodes, sj); } /* Now either add the vbucket or ketama stuff */ if (cfg->dtype == LCBVB_DIST_VBUCKET) { cJSON *vbroot = cJSON_CreateObject(); cJSON *vbmap = cJSON_CreateArray(); tmp = cJSON_CreateNumber(cfg->nrepl); cJSON_AddItemToObject(vbroot, "numReplicas", tmp); for (ii = 0; ii < cfg->nvb; ii++) { cJSON *curvb = cJSON_CreateIntArray( cfg->vbuckets[ii].servers, cfg->nrepl+1); cJSON_AddItemToArray(vbmap, curvb); } cJSON_AddItemToObject(vbroot, "vBucketMap", vbmap); cJSON_AddItemToObject(root, "vBucketServerMap", vbroot); } ret = cJSON_PrintUnformatted(root); cJSON_Delete(root); return ret; }
void save_presets(int do_update) { char * outputdata; int count, i; cJSON *root, *userobj, *versionobj, *graphicsobj; FILE* f; root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "Powder Toy Preferences", "Don't modify this file unless you know what you're doing. P.S: editing the admin/mod fields in your user info doesn't give you magical powers"); //User Info if(svf_login) { cJSON_AddItemToObject(root, "user", userobj=cJSON_CreateObject()); cJSON_AddStringToObject(userobj, "name", svf_user); cJSON_AddStringToObject(userobj, "id", svf_user_id); cJSON_AddStringToObject(userobj, "session_id", svf_session_id); if(svf_admin) { cJSON_AddTrueToObject(userobj, "admin"); cJSON_AddFalseToObject(userobj, "mod"); } else if(svf_mod) { cJSON_AddFalseToObject(userobj, "admin"); cJSON_AddTrueToObject(userobj, "mod"); } else { cJSON_AddFalseToObject(userobj, "admin"); cJSON_AddFalseToObject(userobj, "mod"); } } //Version Info cJSON_AddItemToObject(root, "version", versionobj=cJSON_CreateObject()); cJSON_AddNumberToObject(versionobj, "major", SAVE_VERSION); cJSON_AddNumberToObject(versionobj, "minor", MINOR_VERSION); cJSON_AddNumberToObject(versionobj, "build", BUILD_NUM); if(do_update) { cJSON_AddTrueToObject(versionobj, "update"); } else { cJSON_AddFalseToObject(versionobj, "update"); } //Display settings cJSON_AddItemToObject(root, "graphics", graphicsobj=cJSON_CreateObject()); cJSON_AddNumberToObject(graphicsobj, "colour", colour_mode); count = 0; i = 0; while(display_modes[i++]) { count++; } cJSON_AddItemToObject(graphicsobj, "display", cJSON_CreateIntArray(display_modes, count)); count = 0; i = 0; while(render_modes[i++]) { count++; } cJSON_AddItemToObject(graphicsobj, "render", cJSON_CreateIntArray(render_modes, count)); //General settings cJSON_AddStringToObject(root, "proxy", http_proxy_string); cJSON_AddNumberToObject(root, "scale", sdl_scale); outputdata = cJSON_Print(root); cJSON_Delete(root); f = fopen("powder.pref", "wb"); if(!f) return; fwrite(outputdata, 1, strlen(outputdata), f); fclose(f); free(outputdata); //Old format, here for reference only /*FILE *f=fopen("powder.def", "wb"); unsigned char sig[4] = {0x50, 0x44, 0x65, 0x68}; unsigned char tmp = sdl_scale; if (!f) return; fwrite(sig, 1, 4, f); save_string(f, svf_user); //save_string(f, svf_pass); save_string(f, svf_user_id); save_string(f, svf_session_id); fwrite(&tmp, 1, 1, f); tmp = cmode; fwrite(&tmp, 1, 1, f); tmp = svf_admin; fwrite(&tmp, 1, 1, f); tmp = svf_mod; fwrite(&tmp, 1, 1, f); save_string(f, http_proxy_string); tmp = SAVE_VERSION; fwrite(&tmp, 1, 1, f); tmp = MINOR_VERSION; fwrite(&tmp, 1, 1, f); tmp = BUILD_NUM; fwrite(&tmp, 1, 1, f); tmp = do_update; fwrite(&tmp, 1, 1, f); fclose(f);*/ }
DiagnosticVisualisation::DiagnosticVisualisation(UdpClient *udpClient, unsigned int numberParticles, Particle2 *particleTable, RoboclawProxy *roboClaw, HokuyoProxy *hokuyo) { client = udpClient; NumberParticles = numberParticles; Particles = particleTable; RoboClaw = roboClaw; Hokuyo = hokuyo; rootJSON = cJSON_CreateObject(); roboClawJSON = cJSON_CreateObject(); hokuyoJSON = cJSON_CreateObject(); particlesJSONTable = cJSON_CreateArray(); //cJSON_AddItemToObject(rootJSON, "RoboClaw", roboClawJSON); cJSON_AddItemToObject(rootJSON, "Hokuyo", hokuyoJSON); cJSON_AddItemToObject(rootJSON, "Particles", particlesJSONTable); hokuyoJSONAngleTable = cJSON_CreateDoubleArray(Hokuyo->Angles, Hokuyo->Length); hokuyoJSONDistancesTable = cJSON_CreateIntArray(Hokuyo->Distances, Hokuyo->Length); cJSON_AddItemToObject(hokuyoJSON, "Angles", hokuyoJSONAngleTable); cJSON_AddItemToObject(hokuyoJSON, "Distances", hokuyoJSONDistancesTable); cJSON *itemParticle; cJSON *tableCalculatedProbability; cJSON *tableCalculatedDistances; for (unsigned int i = 0; i < NumberParticles; i++) { itemParticle = cJSON_CreateObject(); cJSON_AddNumberToObject(itemParticle, "X", Particles[i].X); cJSON_AddNumberToObject(itemParticle, "Y", Particles[i].Y); cJSON_AddNumberToObject(itemParticle, "P", Particles[i].P); cJSON_AddNumberToObject(itemParticle, "Angle", Particles[i].Angle); tableCalculatedProbability = cJSON_CreateDoubleArray( Particles[i].CalculatedProbability, Particles[i].Length); cJSON_AddItemToObject(itemParticle, "CalculatedProbability", tableCalculatedProbability); tableCalculatedDistances = cJSON_CreateDoubleArray( Particles[i].CalculatedDistances, Particles[i].Length); cJSON_AddItemToObject(itemParticle, "CalculatedDistances", tableCalculatedDistances); cJSON_AddItemToArray(particlesJSONTable, itemParticle); } /*particlesJSONTable = cJSON_CreateArray(); cJSON *itemParticle; for(int i = 0; i < NumberParticles;i++) { itemParticle = cJSON_CreateObject(); cJSON_AddNumberToObject(itemParticle,"X",Particles[i].X); cJSON_AddItemToArray(particlesJSONTable,itemParticle); } */ // cJSON_AddItemToObject(particlesJSON,"Particle",particlesJSONTable); //(Particles, // NumberParticles); //cJSON_AddNumberToObject(particlesJSON,"X",) char * rendered = cJSON_Print(rootJSON); printf(rendered); fflush(NULL); Hokuyo->Distances[0] = 777; Hokuyo->Angles[0] = 555; Particles[0].X = Particles[0].Angle = 888; Particles[0].CalculatedDistances[0] = 0.7777; Particles[0].CalculatedProbability[0] = 5000; Send(); rendered = cJSON_Print(rootJSON); printf(rendered); fflush(NULL); //particlesJSONTable = cJSON_CreateArray(); //cJSON_AddItemToArray() // // cJSON_AddItemToObject(particlesJSON, "X", ) //cJSON_AddNumberToObject() //cJSON_AddItemToObject(rootJSON, /*cJSON_AddItemToObject(root, "name", cJSON_CreateString("Jack (\"Bee\") Nimble")); cJSON_AddItemToObject(root, "format", fmt = cJSON_CreateObject()); cJSON_AddStringToObject(fmt, "type", "rect"); cJSON_AddNumberToObject(fmt, "width", 1920); cJSON_AddNumberToObject(fmt, "height", 1080); cJSON_AddFalseToObject (fmt, "interlace"); cJSON_AddNumberToObject(fmt, "frame rate", 24); { "name": "Jack (\"Bee\") Nimble", "format": { "type": "rect", "width": 1920, "height": 1080, "interlace": false, "frame rate": 24 } } */ }
void save_presets(int do_update) { //*/ int i, count; char * outputdata; cJSON *root, *userobj, *versionobj, *recobj, *graphicsobj, *hudobj; FILE *f = fopen("powder.pref", "wb"); if(!f) return; root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "Powder Toy Preferences", "Don't modify this file unless you know what you're doing. P.S: editing the admin/mod fields in your user info doesn't give you magical powers"); //User Info if(svf_login){ cJSON_AddItemToObject(root, "user", userobj=cJSON_CreateObject()); cJSON_AddStringToObject(userobj, "name", svf_user); cJSON_AddStringToObject(userobj, "id", svf_user_id); cJSON_AddStringToObject(userobj, "session_id", svf_session_id); if(svf_admin){ cJSON_AddTrueToObject(userobj, "admin"); cJSON_AddFalseToObject(userobj, "mod"); } else if(svf_mod){ cJSON_AddFalseToObject(userobj, "admin"); cJSON_AddTrueToObject(userobj, "mod"); } else { cJSON_AddFalseToObject(userobj, "admin"); cJSON_AddFalseToObject(userobj, "mod"); } } //Version Info cJSON_AddItemToObject(root, "version", versionobj=cJSON_CreateObject()); cJSON_AddNumberToObject(versionobj, "major", SAVE_VERSION); cJSON_AddNumberToObject(versionobj, "minor", MINOR_VERSION); cJSON_AddNumberToObject(versionobj, "build", BUILD_NUM); if(do_update){ cJSON_AddTrueToObject(versionobj, "update"); } else { cJSON_AddFalseToObject(versionobj, "update"); } //Fav Menu/Records cJSON_AddItemToObject(root, "records", recobj=cJSON_CreateObject()); cJSON_AddNumberToObject(recobj, "num elements in menu", locked); for (i = 0; i < locked; i++) { char eltext[128] = ""; sprintf(eltext,"element %i",i); cJSON_AddNumberToObject(recobj, eltext, favMenu[18-i]); } cJSON_AddNumberToObject(recobj, "Alternate HUD ON", alt_hud); cJSON_AddNumberToObject(recobj, "Total Time Played", ((double)currentTime/1000)+((double)totaltime/1000)-((double)totalafktime/1000)-((double)afktime/1000)); cJSON_AddNumberToObject(recobj, "Average FPS", totalfps/frames); cJSON_AddNumberToObject(recobj, "Number of frames", frames); cJSON_AddNumberToObject(recobj, "Max FPS", maxfps); cJSON_AddNumberToObject(recobj, "Total AFK Time", ((double)totalafktime/1000)+((double)afktime/1000)+((double)prevafktime/1000)); cJSON_AddNumberToObject(recobj, "Times Played", timesplayed); //Display settings cJSON_AddItemToObject(root, "graphics", graphicsobj=cJSON_CreateObject()); cJSON_AddNumberToObject(graphicsobj, "colour", colour_mode); count = 0; i = 0; while(display_modes[i++]){ count++; } cJSON_AddItemToObject(graphicsobj, "display", cJSON_CreateIntArray(display_modes, count)); count = 0; i = 0; while(render_modes[i++]){ count++; } cJSON_AddItemToObject(graphicsobj, "render", cJSON_CreateIntArray(render_modes, count)); //HUDs cJSON_AddItemToObject(root, "HUD", hudobj=cJSON_CreateObject()); cJSON_AddItemToObject(hudobj, "normal", cJSON_CreateIntArray(hud_normal, HUD_OPTIONS)); cJSON_AddItemToObject(hudobj, "debug", cJSON_CreateIntArray(hud_debug, HUD_OPTIONS)); cJSON_AddItemToObject(hudobj, "modnormal", cJSON_CreateIntArray(hud_modnormal, HUD_OPTIONS)); cJSON_AddItemToObject(hudobj, "moddebug", cJSON_CreateIntArray(hud_moddebug, HUD_OPTIONS)); //General settings cJSON_AddStringToObject(root, "proxy", http_proxy_string); cJSON_AddNumberToObject(root, "scale", sdl_scale); cJSON_AddNumberToObject(root, "Debug mode", DEBUG_MODE); outputdata = cJSON_Print(root); cJSON_Delete(root); fwrite(outputdata, 1, strlen(outputdata), f); fclose(f); free(outputdata); //Old format, here for reference only /*/FILE *f=fopen("powder.def", "wb"); unsigned char sig[4] = {0x50, 0x44, 0x65, 0x68}; unsigned char tmp = sdl_scale; if (!f) return; fwrite(sig, 1, 4, f); save_string(f, svf_user); //save_string(f, svf_pass); save_string(f, svf_user_id); save_string(f, svf_session_id); fwrite(&tmp, 1, 1, f); tmp = cmode; fwrite(&tmp, 1, 1, f); tmp = svf_admin; fwrite(&tmp, 1, 1, f); tmp = svf_mod; fwrite(&tmp, 1, 1, f); save_string(f, http_proxy_string); tmp = SAVE_VERSION; fwrite(&tmp, 1, 1, f); tmp = MINOR_VERSION; fwrite(&tmp, 1, 1, f); tmp = BUILD_NUM; fwrite(&tmp, 1, 1, f); tmp = do_update; fwrite(&tmp, 1, 1, f); fclose(f); /*/ }
cJSON* CHPRepPayloadToJson(OCRepPayload* repData) { cJSON *outJson = cJSON_CreateObject(); if (outJson == NULL) { return NULL; } OCRepPayloadValue* val = repData->values; while (val) { switch (val->type) { case OCREP_PROP_NULL: break; case OCREP_PROP_INT: OIC_LOG_V(DEBUG, TAG, "%s(int):%d", val->name, (int)val->i); cJSON_AddNumberToObject(outJson,val->name,(int)val->i); break; case OCREP_PROP_DOUBLE: OIC_LOG_V(DEBUG, TAG, "%s(double):%f", val->name, val->d); cJSON_AddNumberToObject(outJson,val->name,val->d); break; case OCREP_PROP_BOOL: OIC_LOG_V(DEBUG, TAG, "%s(bool):%s", val->name, val->b ? "true" : "false"); cJSON_AddBoolToObject(outJson,val->name,val->b); break; case OCREP_PROP_STRING: OIC_LOG_V(DEBUG, TAG, "%s(string):%s", val->name, val->str); cJSON_AddStringToObject(outJson,val->name,val->str); break; case OCREP_PROP_OBJECT: { cJSON *objJson = CHPRepPayloadToJson(val->obj); if (objJson != NULL) { cJSON_AddItemToObject(outJson,val->name,objJson); } break; } case OCREP_PROP_ARRAY: { unsigned int i = 0; int arraySize = (int)val->arr.dimensions[0]; switch (val->arr.type) { case OCREP_PROP_INT: OIC_LOG_V(DEBUG, TAG, "%s(int array)", val->name); if (arraySize > 0) { int castVal[val->arr.dimensions[0]]; for (i = 0 ; i < (unsigned int)arraySize ; i++) { castVal[i] = (int)val->arr.iArray[i]; } cJSON *array = cJSON_CreateIntArray(castVal,arraySize); if (array != NULL) { cJSON_AddItemToObject(outJson,val->name,array); } } break; case OCREP_PROP_DOUBLE: OIC_LOG_V(DEBUG, TAG, "%s(double array)", val->name); if (arraySize > 0) { cJSON *array = cJSON_CreateDoubleArray(val->arr.dArray,arraySize); if (array != NULL) { cJSON_AddItemToObject(outJson,val->name,array); } } break; case OCREP_PROP_STRING: OIC_LOG_V(DEBUG, TAG, "%s(string array)", val->name); if (arraySize > 0) { cJSON *array = cJSON_CreateStringArray((const char**)val->arr.strArray, arraySize); if (array != NULL) { cJSON_AddItemToObject(outJson,val->name,array); } } break; case OCREP_PROP_OBJECT: if (arraySize > 0) { cJSON *arrayJson = cJSON_CreateArray(); for (i = 0 ; i < (unsigned int)arraySize ; i++) { cJSON *objJson = CHPRepPayloadToJson(val->arr.objArray[i]); if (objJson != NULL && arrayJson != NULL) { cJSON_AddItemToArray(arrayJson, objJson); } } if (arrayJson != NULL) { cJSON_AddItemToObject(outJson,val->name,arrayJson); } } break; case OCREP_PROP_BOOL: //TODO : Not support - cJSON_CreateBoolArray break; default: OIC_LOG_V(ERROR, TAG, "Unknown/unsupported array type: %s", val->name); break; } break; } default: OIC_LOG_V(ERROR, TAG, "Unknown type: %s", val->name); break; } val = val->next; } if( repData->values != NULL) { return outJson; } else { cJSON_Delete(outJson); return NULL; } }
void cJSONExt_AddIntArrayToObject(cJSON* object, const char* name, int* vars, int numinarray) { cJSON* jsonarray = cJSON_CreateIntArray( vars, numinarray ); cJSON_AddItemToObject( object, name, jsonarray ); }
/* Create a bunch of objects as demonstration. */ void create_objects() { cJSON *root, *fmt, *img, *thm, *fld; char *out; int i; /* declare a few. */ /* Our "days of the week" array: */ const char *strings[7] = { "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday" }; /* Our matrix: */ int numbers[3][3] = { { 0,-1,0 },{ 1,0,0 },{ 0,0,1 } }; /* Our "gallery" item: */ int ids[4] = { 116,943,234,38793 }; /* Our array of "records": */ struct record fields[2] = { { "zip",37.7668,-1.223959e+2,"","SAN FRANCISCO","CA","94107","US" }, { "zip",37.371991,-1.22026e+2,"","SUNNYVALE","CA","94085","US" } }; /* Here we construct some JSON standards, from the JSON site. */ /* Our "Video" datatype: */ root = cJSON_CreateObject(); cJSON_AddItemToObject(root, "name", cJSON_CreateString("Jack (\"Bee\") Nimble")); cJSON_AddItemToObject(root, "format", fmt = cJSON_CreateObject()); cJSON_AddStringToObject(fmt, "type", "rect"); cJSON_AddNumberToObject(fmt, "width", 1920); cJSON_AddNumberToObject(fmt, "height", 1080); cJSON_AddFalseToObject(fmt, "interlace"); cJSON_AddNumberToObject(fmt, "frame rate", 24); out = cJSON_Print(root); cJSON_Delete(root); printf("%s\n", out); free(out); /* Print to text, Delete the cJSON, print it, release the string. */ /* Our "days of the week" array: */ root = cJSON_CreateStringArray(strings, 7); out = cJSON_Print(root); cJSON_Delete(root); printf("%s\n", out); free(out); /* Our matrix: */ root = cJSON_CreateArray(); for (i = 0; i<3; i++) cJSON_AddItemToArray(root, cJSON_CreateIntArray(numbers[i], 3)); /* cJSON_ReplaceItemInArray(root,1,cJSON_CreateString("Replacement")); */ out = cJSON_Print(root); cJSON_Delete(root); printf("%s\n", out); free(out); /* Our "gallery" item: */ root = cJSON_CreateObject(); cJSON_AddItemToObject(root, "Image", img = cJSON_CreateObject()); cJSON_AddNumberToObject(img, "Width", 800); cJSON_AddNumberToObject(img, "Height", 600); cJSON_AddStringToObject(img, "Title", "View from 15th Floor"); cJSON_AddItemToObject(img, "Thumbnail", thm = cJSON_CreateObject()); cJSON_AddStringToObject(thm, "Url", "http:/*www.example.com/image/481989943"); cJSON_AddNumberToObject(thm, "Height", 125); cJSON_AddStringToObject(thm, "Width", "100"); cJSON_AddItemToObject(img, "IDs", cJSON_CreateIntArray(ids, 4)); out = cJSON_Print(root); cJSON_Delete(root); printf("%s\n", out); free(out); /* Our array of "records": */ root = cJSON_CreateArray(); for (i = 0; i<2; i++) { cJSON_AddItemToArray(root, fld = cJSON_CreateObject()); cJSON_AddStringToObject(fld, "precision", fields[i].precision); cJSON_AddNumberToObject(fld, "Latitude", fields[i].lat); cJSON_AddNumberToObject(fld, "Longitude", fields[i].lon); cJSON_AddStringToObject(fld, "Address", fields[i].address); cJSON_AddStringToObject(fld, "City", fields[i].city); cJSON_AddStringToObject(fld, "State", fields[i].state); cJSON_AddStringToObject(fld, "Zip", fields[i].zip); cJSON_AddStringToObject(fld, "Country", fields[i].country); } /* cJSON_ReplaceItemInObject(cJSON_GetArrayItem(root,1),"City",cJSON_CreateIntArray(ids,4)); */ out = cJSON_Print(root); cJSON_Delete(root); printf("%s\n", out); free(out); }