1
json 객체의 배열을 반복하고 특정 요소를 다른 배열에 넣고 있습니다.하나의 json 배열에서 다른 배열로 객체 복사하기
char *jsonString = getList(); // reads file and returns json string
json_error_t err;
json_t *jsonArr = json_loads(jsonString , 0 , &err);
int index = 0;
json_t *value = NULL;
json_t *resultArr = malloc(sizeof(json_t) * 100);
json_array_foreach(jsonArr , index , value)
{
if(strcmp(json_string_value(json_object_get(value , "citizenship")) , key) == 0)
{
json_array_append_new(resultArr , value);
}
}
printf("Array size : %i\n" , (int)json_array_size(resultArr));
char * result = json_dumps(resultArr , JSON_INDENT(2));
json_decref(jsonArr);
json_decref(resultArr);
return result;
은 제가 검색과 일치하는 3 개 요소가 있음을 확신하고 루프가 새로 생성 된 배열이 비어있는 것을 말한다 후에는 printf와 비록(), 경우 문 항목의 수에 의해 사실 판단이다. 당신이 지적할만한 명백한 문제가 있습니까? jansson 라이브러리를 사용하고 있습니다.
'json_array_append_new'와'json_array_append'를 사용하는 이유는 무엇입니까? 또한 반환 값을 malloc 및 append와 같은 호출로 확인하고 오류가 없는지 확인하십시오. – Kcvin
또한'json_t * resultArr = json_array(); '를 사용하십시오. – Kcvin
대단히 감사합니다. json_array()가 트릭을했습니다! –