test1.c
Go to the documentation of this file.
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 
5 #include "json.h"
6 
7 int main(int argc, char **argv)
8 {
9  argc = 0; argv = 0;
10  struct json_tokener *tok;
11  struct json_object *my_string, *my_int, *my_object, *my_array;
12  struct json_object *new_obj;
13  int i;
14 
15  mc_set_debug(2);
16 
17  my_string = json_object_new_string("\t");
18  printf("my_string=%s\n", json_object_get_string(my_string));
19  printf("my_string.to_string()=%s\n", json_object_to_json_string(my_string));
20  json_object_put(my_string);
21 
22  my_string = json_object_new_string("\\");
23  printf("my_string=%s\n", json_object_get_string(my_string));
24  printf("my_string.to_string()=%s\n", json_object_to_json_string(my_string));
25  json_object_put(my_string);
26 
27  my_string = json_object_new_string("foo");
28  printf("my_string=%s\n", json_object_get_string(my_string));
29  printf("my_string.to_string()=%s\n", json_object_to_json_string(my_string));
30 
31  my_int = json_object_new_int(9);
32  printf("my_int=%d\n", json_object_get_int(my_int));
33  printf("my_int.to_string()=%s\n", json_object_to_json_string(my_int));
34 
35  my_array = json_object_new_array();
40  printf("my_array=\n");
41  for(i=0; i < json_object_array_length(my_array); i++) {
42  struct json_object *obj = json_object_array_get_idx(my_array, i);
43  printf("\t[%d]=%s\n", i, json_object_to_json_string(obj));
44  }
45  printf("my_array.to_string()=%s\n", json_object_to_json_string(my_array));
46 
47  my_object = json_object_new_object();
48  json_object_object_add(my_object, "abc", json_object_new_int(12));
49  json_object_object_add(my_object, "foo", json_object_new_string("bar"));
50  json_object_object_add(my_object, "bool0", json_object_new_boolean(0));
51  json_object_object_add(my_object, "bool1", json_object_new_boolean(1));
52  json_object_object_add(my_object, "baz", json_object_new_string("bang"));
53  json_object_object_add(my_object, "baz", json_object_new_string("fark"));
54  json_object_object_del(my_object, "baz");
55  json_object_object_add(my_object, "arr", my_array);
56  printf("my_object=\n");
57  /*json_object_object_foreach(my_object, key, val) {
58  printf("\t%s: %s\n", key, json_object_to_json_string(val));
59  }*/
60  printf("my_object.to_string()=%s\n", json_object_to_json_string(my_object));
61 
62  new_obj = json_tokener_parse("\"\003\"");
63  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
64  json_object_put(new_obj);
65 
66  new_obj = json_tokener_parse("/* hello */\"foo\"");
67  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
68  json_object_put(new_obj);
69 
70  new_obj = json_tokener_parse("// hello\n\"foo\"");
71  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
72  json_object_put(new_obj);
73 
74  new_obj = json_tokener_parse("\"\\u0041\\u0042\\u0043\"");
75  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
76  json_object_put(new_obj);
77 
78  new_obj = json_tokener_parse("null");
79  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
80  json_object_put(new_obj);
81 
82  new_obj = json_tokener_parse("True");
83  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
84  json_object_put(new_obj);
85 
86  new_obj = json_tokener_parse("12");
87  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
88  json_object_put(new_obj);
89 
90  new_obj = json_tokener_parse("12.3");
91  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
92  json_object_put(new_obj);
93 
94  new_obj = json_tokener_parse("[\"\\n\"]");
95  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
96  json_object_put(new_obj);
97 
98  new_obj = json_tokener_parse("[\"\\nabc\\n\"]");
99  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
100  json_object_put(new_obj);
101 
102  new_obj = json_tokener_parse("[null]");
103  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
104  json_object_put(new_obj);
105 
106  new_obj = json_tokener_parse("[]");
107  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
108  json_object_put(new_obj);
109 
110  new_obj = json_tokener_parse("[false]");
111  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
112  json_object_put(new_obj);
113 
114  new_obj = json_tokener_parse("[\"abc\",null,\"def\",12]");
115  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
116  json_object_put(new_obj);
117 
118  new_obj = json_tokener_parse("{}");
119  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
120  json_object_put(new_obj);
121 
122  new_obj = json_tokener_parse("{ \"foo\": \"bar\" }");
123  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
124  json_object_put(new_obj);
125 
126  new_obj = json_tokener_parse("{ \"foo\": \"bar\", \"baz\": null, \"bool0\": true }");
127  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
128  json_object_put(new_obj);
129 
130  new_obj = json_tokener_parse("{ \"foo\": [null, \"foo\"] }");
131  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
132  json_object_put(new_obj);
133 
134  new_obj = json_tokener_parse("{ \"abc\": 12, \"foo\": \"bar\", \"bool0\": false, \"bool1\": true, \"arr\": [ 1, 2, 3, null, 5 ] }");
135  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
136  json_object_put(new_obj);
137 
138  new_obj = json_tokener_parse("{ foo }");
139  if(is_error(new_obj)) printf("got error as expected\n");
140 
141  new_obj = json_tokener_parse("foo");
142  if(is_error(new_obj)) printf("got error as expected\n");
143 
144  new_obj = json_tokener_parse("{ \"foo");
145  if(is_error(new_obj)) printf("got error as expected\n");
146 
147  /* test incremental parsing */
148 
149 printf("Hello\n");
150  tok = json_tokener_new();
151  new_obj = json_tokener_parse_ex(tok, "{ \"foo", 6);
152  if(is_error(new_obj)) printf("got error as expected\n");
153  new_obj = json_tokener_parse_ex(tok, "\": {\"bar", 8);
154  if(is_error(new_obj)) printf("got error as expected\n");
155  new_obj = json_tokener_parse_ex(tok, "\":13}}", 6);
156  printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
157  json_object_put(new_obj);
158  json_tokener_free(tok);
159 
160  json_object_put(my_string);
161  json_object_put(my_int);
162  json_object_put(my_object);
163  /*json_object_put(my_array);*/
164 
165  {
166  struct json_object *laser = json_object_new_object();
167  struct json_object *my_array = json_object_new_array();
168  int i; for(i=0;i<20;i++) {
169  json_object_array_add(my_array,
170  i%5 > 0 ? json_object_new_double((double)i) :
171  json_tokener_parse("null")
172  );
173  }
174  json_object_object_add(laser, "readings", my_array);
175 
176  printf("new_obj.to_string()=%s\n", json_object_to_json_string(laser));
177  json_object_put(laser);
178 }
179 
180  return 0;
181 }
char * json_object_get_string(struct json_object *this)
Definition: json_object.c:452
int json_object_array_length(struct json_object *this)
Definition: json_object.c:516
void json_object_put(struct json_object *this)
Definition: json_object.c:144
#define is_error(ptr)
Definition: bits.h:25
struct json_object * json_object_new_boolean(boolean b)
Definition: json_object.c:297
struct json_object * json_object_new_double(double d)
Definition: json_object.c:386
struct json_object * json_object_new_string(const char *s)
Definition: json_object.c:432
void json_tokener_free(struct json_tokener *tok)
Definition: json_tokener.c:66
int json_object_get_int(struct json_object *this)
Definition: json_object.c:341
int main(int argc, char **argv)
Definition: test1.c:7
int json_object_array_add(struct json_object *this, struct json_object *val)
Definition: json_object.c:522
const char * json_object_to_json_string(struct json_object *this)
Definition: json_object.c:199
struct json_object * json_object_new_array()
Definition: json_object.c:495
void mc_set_debug(int debug)
Definition: debug.c:36
struct json_object * json_object_new_object()
Definition: json_object.c:248
struct json_object * json_tokener_parse_ex(struct json_tokener *tok, const char *str, int len)
Definition: json_tokener.c:133
struct json_object * json_object_new_int(int i)
Definition: json_object.c:332
void json_object_object_add(struct json_object *this, const char *key, struct json_object *val)
Definition: json_object.c:270
void json_object_object_del(struct json_object *this, const char *key)
Definition: json_object.c:282
struct json_tokener * json_tokener_new()
Definition: json_tokener.c:58
struct json_object * json_object_array_get_idx(struct json_object *this, int idx)
Definition: json_object.c:535
int json_object_array_put_idx(struct json_object *this, int idx, struct json_object *val)
Definition: json_object.c:528
struct json_object * json_tokener_parse(const char *str)
Definition: json_tokener.c:92


csm
Author(s): Andrea Censi
autogenerated on Tue May 11 2021 02:18:23