diff options
-rw-r--r-- | src/json.c | 6 | ||||
-rw-r--r-- | src/testdir/test_json.vim | 4 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 9 insertions, 3 deletions
diff --git a/src/json.c b/src/json.c index e5e85eb6d..6f914ea03 100644 --- a/src/json.c +++ b/src/json.c @@ -92,7 +92,7 @@ write_string(garray_T *gap, char_u *str) char_u numbuf[NUMBUFLEN]; if (res == NULL) - ga_concat(gap, (char_u *)"null"); + ga_concat(gap, (char_u *)"\"\""); else { #if defined(FEAT_MBYTE) && defined(USE_ICONV) @@ -237,7 +237,7 @@ json_encode_item(garray_T *gap, typval_T *val, int copyID, int options) case VAR_LIST: l = val->vval.v_list; if (l == NULL) - ga_concat(gap, (char_u *)"null"); + ga_concat(gap, (char_u *)"[]"); else { if (l->lv_copyID == copyID) @@ -272,7 +272,7 @@ json_encode_item(garray_T *gap, typval_T *val, int copyID, int options) case VAR_DICT: d = val->vval.v_dict; if (d == NULL) - ga_concat(gap, (char_u *)"null"); + ga_concat(gap, (char_u *)"{}"); else { if (d->dv_copyID == copyID) diff --git a/src/testdir/test_json.vim b/src/testdir/test_json.vim index 6c3d16ce5..acd2ea85b 100644 --- a/src/testdir/test_json.vim +++ b/src/testdir/test_json.vim @@ -103,6 +103,10 @@ func Test_json_encode() call assert_fails('echo json_encode(function("tr"))', 'E474:') call assert_fails('echo json_encode([function("tr")])', 'E474:') + call assert_equal('{"a":""}', json_encode({'a': test_null_string()})) + call assert_equal('{"a":[]}', json_encode({"a": test_null_list()})) + call assert_equal('{"a":{}}', json_encode({"a": test_null_dict()})) + silent! let res = json_encode(function("tr")) call assert_equal("", res) endfunc diff --git a/src/version.c b/src/version.c index 16ba82a3b..af507e4b7 100644 --- a/src/version.c +++ b/src/version.c @@ -772,6 +772,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1391, +/**/ 1390, /**/ 1389, |