【发布时间】:2015-04-16 22:23:54
【问题描述】:
假设如下 JSON 对象,一个 [epoch, value] 数组的数组:
[ [0,1], [1912312314,2], [1912312857,5] ]
删除数组元素的正确方法是什么?这个想法是删除一个纪元alder比给定值的那个。我使用 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));
}
使用调整后的对象调用 json_object_to_json_string() 时失败 (SIGSEGV)。
谢谢
【问题讨论】:
-
能否请您说明您是如何从提供的 JSON 中读取
jsonHeatmapObj变量的? -
更新了问题:添加了对 json_tokener_parse() 的调用。