Skip to content
Snippets Groups Projects
  • Markus Armbruster's avatar
    998da0b1
    qobject: Factor JSON writer out of qobject_to_json() · 998da0b1
    Markus Armbruster authored
    
    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: default avatarMarkus Armbruster <armbru@redhat.com>
    Message-Id: <20201211171152.146877-16-armbru@redhat.com>
    998da0b1
    History
    qobject: Factor JSON writer out of qobject_to_json()
    Markus Armbruster authored
    
    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: default avatarMarkus Armbruster <armbru@redhat.com>
    Message-Id: <20201211171152.146877-16-armbru@redhat.com>