diff options
author | Damien George <damien.p.george@gmail.com> | 2014-09-17 22:56:34 +0100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-09-17 22:56:34 +0100 |
commit | 612045f53f7e5edf9faa359ee9ee52d490d58000 (patch) | |
tree | a021612e31ff6275246514405c4a8421c6eff5d7 /py/objdict.c | |
parent | 8a9b999f1c9a0edf84b2507940efb8deaaa380b8 (diff) | |
download | micropython-612045f53f7e5edf9faa359ee9ee52d490d58000.tar.gz micropython-612045f53f7e5edf9faa359ee9ee52d490d58000.zip |
py: Add native json printing using existing print framework.
Also add start of ujson module with dumps implemented. Enabled in unix
and stmhal ports. Test passes on both.
Diffstat (limited to 'py/objdict.c')
-rw-r--r-- | py/objdict.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/py/objdict.c b/py/objdict.c index a378bf6db8..a624320427 100644 --- a/py/objdict.c +++ b/py/objdict.c @@ -60,6 +60,9 @@ STATIC mp_map_elem_t *dict_iter_next(mp_obj_dict_t *dict, mp_uint_t *cur) { STATIC void dict_print(void (*print)(void *env, const char *fmt, ...), void *env, mp_obj_t self_in, mp_print_kind_t kind) { mp_obj_dict_t *self = self_in; bool first = true; + if (!(MICROPY_PY_UJSON && kind == PRINT_JSON)) { + kind = PRINT_REPR; + } print(env, "{"); mp_uint_t cur = 0; mp_map_elem_t *next = NULL; @@ -68,9 +71,9 @@ STATIC void dict_print(void (*print)(void *env, const char *fmt, ...), void *env print(env, ", "); } first = false; - mp_obj_print_helper(print, env, next->key, PRINT_REPR); + mp_obj_print_helper(print, env, next->key, kind); print(env, ": "); - mp_obj_print_helper(print, env, next->value, PRINT_REPR); + mp_obj_print_helper(print, env, next->value, kind); } print(env, "}"); } |