qemu/include/qapi/qmp
Markus Armbruster 998da0b158 qobject: Factor JSON writer out of qobject_to_json()
We have two JSON writers written in C: qobject/qjson.c provides
qobject_to_json(), and migration/qjson.c provides a more low level
imperative interface.  They don't share code.  The latter tacitly
limits numbers to int64_t, and strings contents to characters that
don't need escaping.

Factor out qobject_to_json()'s JSON writer as qobject/json-writer.c.
Straightforward, except for numbers: since the writer is to be
independent of QObject, it can't use qnum_to_string().  Open-code it
instead.  This is actually an improvement of sorts, because it
liberates qnum_to_string() from JSON's needs: its JSON-related FIXMEs
move to the JSON writer, where they belong.

The next commit will replace migration/qjson.c.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20201211171152.146877-16-armbru@redhat.com>
2020-12-19 10:39:16 +01:00
..
dispatch.h remove preconfig state 2020-12-15 12:51:48 -05:00
json-parser.h json: Clean up headers 2018-08-24 20:26:37 +02:00
json-writer.h qobject: Factor JSON writer out of qobject_to_json() 2020-12-19 10:39:16 +01:00
qbool.h qobject: Move internals to qobject-internal.h 2020-12-19 10:38:43 +01:00
qdict.h qobject: Move internals to qobject-internal.h 2020-12-19 10:38:43 +01:00
qerror.h ui: Improve a client_migrate_info error message 2020-12-10 17:16:44 +01:00
qjson.h qobject: Change qobject_to_json()'s value to GString 2020-12-19 10:38:43 +01:00
qlist.h qobject: Move internals to qobject-internal.h 2020-12-19 10:38:43 +01:00
qlit.h qlit: add qobject_from_qlit() 2018-03-19 10:00:14 -05:00
qnull.h qobject: Move internals to qobject-internal.h 2020-12-19 10:38:43 +01:00
qnum.h qobject: Move internals to qobject-internal.h 2020-12-19 10:38:43 +01:00
qobject.h qobject: Move internals to qobject-internal.h 2020-12-19 10:38:43 +01:00
qstring.h qobject: Drop qstring_get_try_str() 2020-12-19 10:39:16 +01:00