patch 8.0.1391: encoding empty string to JSON sometimes gives "null"

Problem:    Encoding empty string to JSON sometimes gives "null".
Solution:   Handle NULL string as empty string. (closes #2446)
diff --git a/src/testdir/test_json.vim b/src/testdir/test_json.vim
index 6c3d16c..acd2ea8 100644
--- a/src/testdir/test_json.vim
+++ b/src/testdir/test_json.vim
@@ -103,6 +103,10 @@
   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