diff options
Diffstat (limited to 'Lib/json')
-rw-r--r-- | Lib/json/decoder.py | 2 | ||||
-rw-r--r-- | Lib/json/tests/test_decode.py | 9 |
2 files changed, 8 insertions, 3 deletions
diff --git a/Lib/json/decoder.py b/Lib/json/decoder.py index dc8916c926..dfcc6284a2 100644 --- a/Lib/json/decoder.py +++ b/Lib/json/decoder.py @@ -163,7 +163,7 @@ def JSONObject(s_and_end, encoding, strict, scan_once, object_hook, if nextchar == '}': if object_pairs_hook is not None: result = object_pairs_hook(pairs) - return result, end + return result, end + 1 pairs = {} if object_hook is not None: pairs = object_hook(pairs) diff --git a/Lib/json/tests/test_decode.py b/Lib/json/tests/test_decode.py index 478a16ba0f..ffd1aa4bad 100644 --- a/Lib/json/tests/test_decode.py +++ b/Lib/json/tests/test_decode.py @@ -40,10 +40,15 @@ class TestDecode(object): self.assertEqual(od, OrderedDict(p)) self.assertEqual(type(od), OrderedDict) # the object_pairs_hook takes priority over the object_hook - self.assertEqual(self.loads(s, - object_pairs_hook=OrderedDict, + self.assertEqual(self.loads(s, object_pairs_hook=OrderedDict, object_hook=lambda x: None), OrderedDict(p)) + # check that empty objects literals work (see #17368) + self.assertEqual(self.loads('{}', object_pairs_hook=OrderedDict), + OrderedDict()) + self.assertEqual(self.loads('{"empty": {}}', + object_pairs_hook=OrderedDict), + OrderedDict([('empty', OrderedDict())])) def test_extra_data(self): s = '[1, 2, 3]5' |