You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

test1.c 3.8 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stddef.h>
  4. #include <string.h>
  5. #include <assert.h>
  6. #include "json.h"
  7. static int sort_fn (const void *j1, const void *j2)
  8. {
  9. json_object * const *jso1, * const *jso2;
  10. int i1, i2;
  11. jso1 = j1;
  12. jso2 = j2;
  13. if (!*jso1 && !*jso2) {
  14. return 0;
  15. }
  16. if (!*jso1) {
  17. return -1;
  18. }
  19. if (!*jso2) {
  20. return 1;
  21. }
  22. i1 = json_object_get_int(*jso1);
  23. i2 = json_object_get_int(*jso2);
  24. return i1 - i2;
  25. }
  26. int main(int argc, char **argv)
  27. {
  28. json_object *my_string, *my_int, *my_object, *my_array;
  29. int i;
  30. MC_SET_DEBUG(1);
  31. my_string = json_object_new_string("\t");
  32. printf("my_string=%s\n", json_object_get_string(my_string));
  33. printf("my_string.to_string()=%s\n", json_object_to_json_string(my_string));
  34. json_object_put(my_string);
  35. my_string = json_object_new_string("\\");
  36. printf("my_string=%s\n", json_object_get_string(my_string));
  37. printf("my_string.to_string()=%s\n", json_object_to_json_string(my_string));
  38. json_object_put(my_string);
  39. my_string = json_object_new_string("foo");
  40. printf("my_string=%s\n", json_object_get_string(my_string));
  41. printf("my_string.to_string()=%s\n", json_object_to_json_string(my_string));
  42. my_int = json_object_new_int(9);
  43. printf("my_int=%d\n", json_object_get_int(my_int));
  44. printf("my_int.to_string()=%s\n", json_object_to_json_string(my_int));
  45. my_array = json_object_new_array();
  46. json_object_array_add(my_array, json_object_new_int(1));
  47. json_object_array_add(my_array, json_object_new_int(2));
  48. json_object_array_add(my_array, json_object_new_int(3));
  49. json_object_array_put_idx(my_array, 4, json_object_new_int(5));
  50. printf("my_array=\n");
  51. for(i=0; i < json_object_array_length(my_array); i++) {
  52. json_object *obj = json_object_array_get_idx(my_array, i);
  53. printf("\t[%d]=%s\n", i, json_object_to_json_string(obj));
  54. }
  55. printf("my_array.to_string()=%s\n", json_object_to_json_string(my_array));
  56. json_object_put(my_array);
  57. my_array = json_object_new_array();
  58. json_object_array_add(my_array, json_object_new_int(3));
  59. json_object_array_add(my_array, json_object_new_int(1));
  60. json_object_array_add(my_array, json_object_new_int(2));
  61. json_object_array_put_idx(my_array, 4, json_object_new_int(0));
  62. printf("my_array=\n");
  63. for(i=0; i < json_object_array_length(my_array); i++) {
  64. json_object *obj = json_object_array_get_idx(my_array, i);
  65. printf("\t[%d]=%s\n", i, json_object_to_json_string(obj));
  66. }
  67. printf("my_array.to_string()=%s\n", json_object_to_json_string(my_array));
  68. json_object_array_sort(my_array, sort_fn);
  69. printf("my_array=\n");
  70. for(i=0; i < json_object_array_length(my_array); i++) {
  71. json_object *obj = json_object_array_get_idx(my_array, i);
  72. printf("\t[%d]=%s\n", i, json_object_to_json_string(obj));
  73. }
  74. printf("my_array.to_string()=%s\n", json_object_to_json_string(my_array));
  75. my_object = json_object_new_object();
  76. json_object_object_add(my_object, "abc", json_object_new_int(12));
  77. json_object_object_add(my_object, "foo", json_object_new_string("bar"));
  78. json_object_object_add(my_object, "bool0", json_object_new_boolean(0));
  79. json_object_object_add(my_object, "bool1", json_object_new_boolean(1));
  80. json_object_object_add(my_object, "baz", json_object_new_string("bang"));
  81. json_object_object_add(my_object, "baz", json_object_new_string("fark"));
  82. json_object_object_del(my_object, "baz");
  83. /*json_object_object_add(my_object, "arr", my_array);*/
  84. printf("my_object=\n");
  85. json_object_object_foreach(my_object, key, val) {
  86. printf("\t%s: %s\n", key, json_object_to_json_string(val));
  87. }
  88. printf("my_object.to_string()=%s\n", json_object_to_json_string(my_object));
  89. json_object_put(my_string);
  90. json_object_put(my_int);
  91. json_object_put(my_object);
  92. json_object_put(my_array);
  93. return 0;
  94. }