Как прочитать строку с помощью cJSON

Я использую cJSON, но почему-то не могу заставить строки работать:

void myfile()
{
  cJSON* type = NULL;
  char text1[]="{\n\"name\": \"Jack (\\\"Bee\\\") Nimble\", \n\"format\": {\"type\":       \"rect\", \n\"width\":      1920, \n\"height\":     1080, \n\"interlace\":  false,\"frame rate\": 24\n}\n}";
  cJSON * root = cJSON_Parse(text);
  cJSON * format = cJSON_GetObjectItem(root,"format"); 
  int framerate = cJSON_GetObjectItem(format,"frame rate")->valueint;
  type = cJSON_GetObjectItem(format,"type")->valuestring;
  char * rendered = cJSON_Print(root);
  cJSON_Delete(root);
  printf("rate = %d, type = %s \n", framerate, type) ;
}

Я получаю только мусор. Я также пробовал это, но он даже не скомпилировался:

char *type[] = cJSON_GetObjectItem(format,"type")->valuestring;


person Tom    schedule 04.12.2015    source источник
comment
cJSON* type = NULL;, type = %s - вы уверены, что должны печатать именно так? Если cJSON не определено как char, вы получаете UB.   -  person user4520    schedule 05.12.2015
comment
Я хочу символ в конце, чтобы я мог распечатать его с помощью %s что мне нужно сделать для этого?   -  person Tom    schedule 05.12.2015
comment
попробуйте char *type = cJSON_GetObjectItem(format,"type")->valuestring; и printf("rate = %d, type = %s \n", framerate, type) ; переместиться до cJSON_Delete(root);   -  person BLUEPIXY    schedule 05.12.2015