Предполагая следующий JSON объект, массив [эпохи, значение] массивов:Как удалить элемент массива в json-c?
[ [0,1], [1912312314,2], [1912312857,5] ]
Что правильный способ, чтобы удалить элемент массива? Идея состоит в том, чтобы удалить тот, у которого ольха эпохи, чем заданное значение. Я использую json-c 0.11.
Я пробовал:
json_object *jsonHeatmapObj;
jsonHeatmapObj = json_tokener_parse ("[ [0,1], [1912312314,2], [1912312857,5] ]");
for (int idx=0 ; idx < json_object_array_length(jsonHeatmapObj) ; idx++) {
json_object *curJsonHeatpointObj = json_object_array_get_idx (jsonHeatmapObj , idx);
int x = json_object_get_int (json_object_array_get_idx (curJsonHeatpointObj , 0));
if (x < time(NULL) - 10) {
json_object_put (curJsonHeatpointObj);
}
printf("\t[%d]=%s\n", idx, json_object_to_json_string(jsonHeatmapObj));
}
Это не удается (SIGSEGV) при вызове json_object_to_json_string() с настроенным объектом.
Спасибо
Не могли бы вы указать, как вы прочитали переменную 'jsonHeatmapObj' из предоставленного JSON? – logc
Обновление вопроса: добавлен вызов json_tokener_parse(). – SCO