AllVizParams* Region::LoadParams(std::string pathname,AllVizParams* p) { std::string err; DEBUGPRINT(("LoadParams pathname=%s",pathname.c_str())); cJSON* j = jsonReadFile(pathname,err); if ( ! j ) { throw NosuchException("Unable to open file (name=%s, err=%s)",pathname.c_str(),err.c_str()); } p->loadJson(j); jsonFree(j); return p; }
static void freeArray(PJsonObject object){ PJsonObject tmp=object->value_array; while(object){ if(object->type==OBJECT){ jsonFree(object); } /**if(object->type=ARRAY){ freeArray(object); }*/ free(object); object=tmp; if(object) tmp=object->value_array; } }
static void showErrorMessage(const char *jsonString,ErrorType error){ int position=jsonString-string_start; if(error==NO_QUOTATION){ printf("missing quotaion at position:%d\n%s\n",position,jsonString); }else if(error==NO_COLON){ printf("missing colon at position:%d\n%s\n",position,jsonString); }else if(error==NO_KEY){ printf("missing key of value at position:%d\n%s\n",position,jsonString); }else if(error==NO_VALUE){ printf("missing value at position:%d\n%s\n",position,jsonString); }else if(error==NO_START){ printf("missing start symbol at position:%d\n%s\n",position,jsonString); }else if(error==NO_END){ printf("missing end symbol at position:%d\n%s\n",position,jsonString); } jsonFree(object_start);//release space }
static void freeChild(PJsonObject object){ if(object){ jsonFree(object); } }