| #include <stdio.h> |
| #include <stdlib.h> |
| #include <stddef.h> |
| #include <string.h> |
| #include <assert.h> |
| |
| #include "json.h" |
| #include "parse_flags.h" |
| |
| static int sort_fn (const void *j1, const void *j2) |
| { |
| json_object * const *jso1, * const *jso2; |
| int i1, i2; |
| |
| jso1 = (json_object* const*)j1; |
| jso2 = (json_object* const*)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; |
| } |
| |
| #ifdef TEST_FORMATTED |
| #define json_object_to_json_string(obj) json_object_to_json_string_ext(obj,sflags) |
| #else |
| /* no special define */ |
| #endif |
| |
| int main(int argc, char **argv) |
| { |
| json_object *my_string, *my_int, *my_object, *my_array; |
| int i; |
| #ifdef TEST_FORMATTED |
| int sflags = 0; |
| #endif |
| |
| MC_SET_DEBUG(1); |
| |
| #ifdef TEST_FORMATTED |
| sflags = parse_flags(argc, argv); |
| #endif |
| |
| my_string = json_object_new_string("\t"); |
| printf("my_string=%s\n", json_object_get_string(my_string)); |
| printf("my_string.to_string()=%s\n", json_object_to_json_string(my_string)); |
| json_object_put(my_string); |
| |
| my_string = json_object_new_string("\\"); |
| printf("my_string=%s\n", json_object_get_string(my_string)); |
| printf("my_string.to_string()=%s\n", json_object_to_json_string(my_string)); |
| json_object_put(my_string); |
| |
| my_string = json_object_new_string("foo"); |
| printf("my_string=%s\n", json_object_get_string(my_string)); |
| printf("my_string.to_string()=%s\n", json_object_to_json_string(my_string)); |
| |
| my_int = json_object_new_int(9); |
| printf("my_int=%d\n", json_object_get_int(my_int)); |
| printf("my_int.to_string()=%s\n", json_object_to_json_string(my_int)); |
| |
| my_array = json_object_new_array(); |
| 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_add(my_array, json_object_new_int(3)); |
| json_object_array_put_idx(my_array, 4, json_object_new_int(5)); |
| 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_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")); |
| json_object_object_add(my_object, "bool0", json_object_new_boolean(0)); |
| json_object_object_add(my_object, "bool1", json_object_new_boolean(1)); |
| json_object_object_add(my_object, "baz", json_object_new_string("bang")); |
| json_object_object_add(my_object, "baz", json_object_new_string("fark")); |
| json_object_object_del(my_object, "baz"); |
| /*json_object_object_add(my_object, "arr", my_array);*/ |
| printf("my_object=\n"); |
| json_object_object_foreach(my_object, key, val) { |
| printf("\t%s: %s\n", key, json_object_to_json_string(val)); |
| } |
| printf("my_object.to_string()=%s\n", json_object_to_json_string(my_object)); |
| |
| json_object_put(my_string); |
| json_object_put(my_int); |
| json_object_put(my_object); |
| json_object_put(my_array); |
| |
| return 0; |
| } |