mirror of
https://github.com/json-c/json-c.git
synced 2026-03-27 17:09:06 +08:00
Add new json_object_array_sort function
- uses libc's qsort to sort the arraylist - add test in test1.c
This commit is contained in:
44
test1.c
44
test1.c
@@ -6,6 +6,29 @@
|
||||
|
||||
#include "json.h"
|
||||
|
||||
static int sort_fn (const void *j1, const void *j2)
|
||||
{
|
||||
json_object **jso1, **jso2;
|
||||
int i1, i2;
|
||||
|
||||
jso1 = j1;
|
||||
jso2 = j2;
|
||||
if (!*jso1 && !*jso2) {
|
||||
return 0;
|
||||
}
|
||||
if (!*jso1) {
|
||||
return -1;
|
||||
}
|
||||
if (!*jso2) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
i1 = json_object_get_int(*jso1);
|
||||
i2 = json_object_get_int(*jso2);
|
||||
|
||||
return i1 - i2;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
json_tokener *tok;
|
||||
@@ -45,6 +68,27 @@ int main(int argc, char **argv)
|
||||
}
|
||||
printf("my_array.to_string()=%s\n", json_object_to_json_string(my_array));
|
||||
|
||||
json_object_put(my_array);
|
||||
|
||||
my_array = json_object_new_array();
|
||||
json_object_array_add(my_array, json_object_new_int(3));
|
||||
json_object_array_add(my_array, json_object_new_int(1));
|
||||
json_object_array_add(my_array, json_object_new_int(2));
|
||||
json_object_array_put_idx(my_array, 4, json_object_new_int(0));
|
||||
printf("my_array=\n");
|
||||
for(i=0; i < json_object_array_length(my_array); i++) {
|
||||
json_object *obj = json_object_array_get_idx(my_array, i);
|
||||
printf("\t[%d]=%s\n", i, json_object_to_json_string(obj));
|
||||
}
|
||||
printf("my_array.to_string()=%s\n", json_object_to_json_string(my_array));
|
||||
json_object_array_sort(my_array, sort_fn);
|
||||
printf("my_array=\n");
|
||||
for(i=0; i < json_object_array_length(my_array); i++) {
|
||||
json_object *obj = json_object_array_get_idx(my_array, i);
|
||||
printf("\t[%d]=%s\n", i, json_object_to_json_string(obj));
|
||||
}
|
||||
printf("my_array.to_string()=%s\n", json_object_to_json_string(my_array));
|
||||
|
||||
my_object = json_object_new_object();
|
||||
json_object_object_add(my_object, "abc", json_object_new_int(12));
|
||||
json_object_object_add(my_object, "foo", json_object_new_string("bar"));
|
||||
|
||||
Reference in New Issue
Block a user