1try: 2 import ujson as json 3except ImportError: 4 try: 5 import json 6 except ImportError: 7 print("SKIP") 8 raise SystemExit 9 10 11def my_print(o): 12 if isinstance(o, dict): 13 print("sorted dict", sorted(o.items())) 14 else: 15 print(o) 16 17 18my_print(json.loads("null")) 19my_print(json.loads("false")) 20my_print(json.loads("true")) 21my_print(json.loads("1")) 22my_print(json.loads("-2")) 23my_print(json.loads('"abc\\u0064e"')) 24my_print(json.loads("[]")) 25my_print(json.loads("[null]")) 26my_print(json.loads("[null,false,true]")) 27my_print(json.loads(" [ null , false , true ] ")) 28my_print(json.loads("{}")) 29my_print(json.loads('{"a":true}')) 30my_print(json.loads('{"a":null, "b":false, "c":true}')) 31my_print(json.loads('{"a":[], "b":[1], "c":{"3":4}}')) 32my_print(json.loads('"abc\\bdef"')) 33my_print(json.loads('"abc\\fdef"')) 34my_print(json.loads('"abc\\ndef"')) 35my_print(json.loads('"abc\\rdef"')) 36my_print(json.loads('"abc\\tdef"')) 37my_print(json.loads('"abc\\uabcd"')) 38 39# whitespace handling 40my_print(json.loads('{\n\t"a":[]\r\n, "b":[1], "c":{"3":4} \n\r\t\r\r\r\n}')) 41 42# loading nothing should raise exception 43try: 44 json.loads("") 45except ValueError: 46 print("ValueError") 47 48# string which is not closed 49try: 50 my_print(json.loads('"abc')) 51except ValueError: 52 print("ValueError") 53 54# unaccompanied closing brace 55try: 56 my_print(json.loads("]")) 57except ValueError: 58 print("ValueError") 59 60# unspecified object type 61try: 62 my_print(json.loads("a")) 63except ValueError: 64 print("ValueError") 65 66# bad property name 67try: 68 my_print(json.loads('{{}:"abc"}')) 69except ValueError: 70 print("ValueError") 71 72# unexpected characters after white space 73try: 74 my_print(json.loads("[null] a")) 75except ValueError: 76 print("ValueError") 77