qjson.c (7e0019a7196ebed177c95824875cf852e1a6f667) qjson.c (7dc847ebba953db90853d15f140c20eef74d4fb2)
1/*
2 * QObject JSON integration
3 *
4 * Copyright IBM, Corp. 2009
5 *
6 * Authors:
7 * Anthony Liguori <aliguori@us.ibm.com>
8 *

--- 123 unchanged lines hidden (view full) ---

132
133static void to_json(const QObject *obj, QString *str, int pretty, int indent)
134{
135 switch (qobject_type(obj)) {
136 case QTYPE_QNULL:
137 qstring_append(str, "null");
138 break;
139 case QTYPE_QNUM: {
1/*
2 * QObject JSON integration
3 *
4 * Copyright IBM, Corp. 2009
5 *
6 * Authors:
7 * Anthony Liguori <aliguori@us.ibm.com>
8 *

--- 123 unchanged lines hidden (view full) ---

132
133static void to_json(const QObject *obj, QString *str, int pretty, int indent)
134{
135 switch (qobject_type(obj)) {
136 case QTYPE_QNULL:
137 qstring_append(str, "null");
138 break;
139 case QTYPE_QNUM: {
140 QNum *val = qobject_to_qnum(obj);
140 QNum *val = qobject_to(QNum, obj);
141 char *buffer = qnum_to_string(val);
142 qstring_append(str, buffer);
143 g_free(buffer);
144 break;
145 }
146 case QTYPE_QSTRING: {
141 char *buffer = qnum_to_string(val);
142 qstring_append(str, buffer);
143 g_free(buffer);
144 break;
145 }
146 case QTYPE_QSTRING: {
147 QString *val = qobject_to_qstring(obj);
147 QString *val = qobject_to(QString, obj);
148 const char *ptr;
149 int cp;
150 char buf[16];
151 char *end;
152
153 ptr = qstring_get_str(val);
154 qstring_append(str, "\"");
155

--- 40 unchanged lines hidden (view full) ---

196 }
197 };
198
199 qstring_append(str, "\"");
200 break;
201 }
202 case QTYPE_QDICT: {
203 ToJsonIterState s;
148 const char *ptr;
149 int cp;
150 char buf[16];
151 char *end;
152
153 ptr = qstring_get_str(val);
154 qstring_append(str, "\"");
155

--- 40 unchanged lines hidden (view full) ---

196 }
197 };
198
199 qstring_append(str, "\"");
200 break;
201 }
202 case QTYPE_QDICT: {
203 ToJsonIterState s;
204 QDict *val = qobject_to_qdict(obj);
204 QDict *val = qobject_to(QDict, obj);
205
206 s.count = 0;
207 s.str = str;
208 s.indent = indent + 1;
209 s.pretty = pretty;
210 qstring_append(str, "{");
211 qdict_iter(val, to_json_dict_iter, &s);
212 if (pretty) {
213 int j;
214 qstring_append(str, "\n");
215 for (j = 0 ; j < indent ; j++)
216 qstring_append(str, " ");
217 }
218 qstring_append(str, "}");
219 break;
220 }
221 case QTYPE_QLIST: {
222 ToJsonIterState s;
205
206 s.count = 0;
207 s.str = str;
208 s.indent = indent + 1;
209 s.pretty = pretty;
210 qstring_append(str, "{");
211 qdict_iter(val, to_json_dict_iter, &s);
212 if (pretty) {
213 int j;
214 qstring_append(str, "\n");
215 for (j = 0 ; j < indent ; j++)
216 qstring_append(str, " ");
217 }
218 qstring_append(str, "}");
219 break;
220 }
221 case QTYPE_QLIST: {
222 ToJsonIterState s;
223 QList *val = qobject_to_qlist(obj);
223 QList *val = qobject_to(QList, obj);
224
225 s.count = 0;
226 s.str = str;
227 s.indent = indent + 1;
228 s.pretty = pretty;
229 qstring_append(str, "[");
230 qlist_iter(val, (void *)to_json_list_iter, &s);
231 if (pretty) {
232 int j;
233 qstring_append(str, "\n");
234 for (j = 0 ; j < indent ; j++)
235 qstring_append(str, " ");
236 }
237 qstring_append(str, "]");
238 break;
239 }
240 case QTYPE_QBOOL: {
224
225 s.count = 0;
226 s.str = str;
227 s.indent = indent + 1;
228 s.pretty = pretty;
229 qstring_append(str, "[");
230 qlist_iter(val, (void *)to_json_list_iter, &s);
231 if (pretty) {
232 int j;
233 qstring_append(str, "\n");
234 for (j = 0 ; j < indent ; j++)
235 qstring_append(str, " ");
236 }
237 qstring_append(str, "]");
238 break;
239 }
240 case QTYPE_QBOOL: {
241 QBool *val = qobject_to_qbool(obj);
241 QBool *val = qobject_to(QBool, obj);
242
243 if (qbool_get_bool(val)) {
244 qstring_append(str, "true");
245 } else {
246 qstring_append(str, "false");
247 }
248 break;
249 }

--- 22 unchanged lines hidden ---
242
243 if (qbool_get_bool(val)) {
244 qstring_append(str, "true");
245 } else {
246 qstring_append(str, "false");
247 }
248 break;
249 }

--- 22 unchanged lines hidden ---