kbranigan / cJSON

I did not write this code, but I like it.
https://github.com/DaveGamble/cJSON
MIT License
395 stars 238 forks source link

cJSON_Print return NULL #45

Open kormilicinkostia opened 4 years ago

kormilicinkostia commented 4 years ago

Good afternoon. I am using cJSON v1.7.12. I am trying to create a json of the form: { "status":"text", "num": 123 }

For this, I use the following code: `
cJSON monitor = cJSON_CreateObject(); if (monitor == NULL) { cJSON_Delete(monitor); ESP_LOGE(TAG, "Error create json"); } cJSON status = cJSON_CreateString("text");

if (status == NULL) { cJSON_Delete(monitor); ESP_LOGE(TAG, "Error create status"); }

cJSON_AddItemToObject(monitor, "status", status);
int k = 123;
cJSON *num = cJSON_CreateNumber(k);
ESP_LOGI(TAG, "End cJSON_CreateNumber");
if (num == NULL)
{
    cJSON_Delete(monitor);
    ESP_LOGE(TAG, "Error create num");
}

cJSON_AddItemToObject(monitor, "num", num);
ESP_LOGI(TAG, "End cJSON_AddItemToObject");
char* resp_str = cJSON_PrintUnformatted(monitor);
ESP_LOGI(TAG, "End cJSON_Print");
ESP_LOGI(TAG, "out_json: \n '%s'", resp_str);

`

I found that if cJSON_CreateNumber is in my code, then the cJSON_Print function returns null. What is the reason for this problem?

kbranigan commented 4 years ago

perhaps try with the source repository https://github.com/DaveGamble/cJSON maybe this has been fixed or produces a different result.

kormilicinkostia commented 4 years ago

At the last commit in the wizard (e8077d01500279a7b45b8cd7a0ae94ea7ad5748a) this problem was not resolved