Skip to content

Commit c95b17d

Browse files
committed
JsonSerializerOptions experiments
1 parent 32dd818 commit c95b17d

1 file changed

Lines changed: 34 additions & 2 deletions

File tree

src/fractured_json/__init__.py

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
from fractured_json._wrappergen import get_object_property_info, load_assembly
1+
import sys
2+
3+
from fractured_json._version import __version__
4+
from fractured_json._wrappergen import (
5+
create_pythonic_wrapper_class,
6+
get_object_property_info,
7+
load_assembly,
8+
)
29

310
types = load_assembly("FracturedJson")
411

@@ -7,4 +14,29 @@ def object_property_info(obj: object):
714
return get_object_property_info(obj, types)
815

916

10-
from fractured_json._version import __version__
17+
import clr
18+
19+
system_text_json = clr.AddReference("System.Text.Json")
20+
system_text_json_types = {t.Name: t for t in system_text_json.GetTypes() if t.IsPublic}
21+
cls = create_pythonic_wrapper_class(system_text_json_types["JsonSerializerOptions"])
22+
23+
module = sys.modules["fractured_json"]
24+
module.JsonSerializerOptions = cls
25+
26+
27+
system_text_encodings_web = clr.AddReference("System.Text.Encodings.Web")
28+
system_text_encodings_web_types = {
29+
t.Name: t for t in system_text_encodings_web.GetTypes() if t.IsPublic
30+
}
31+
cls = create_pythonic_wrapper_class(system_text_encodings_web_types["JavaScriptEncoder"])
32+
33+
module = sys.modules["fractured_json"]
34+
module.JavaScriptEncoder = cls
35+
36+
37+
# from System.Text.Encodings.Web import JavaScriptEncoder
38+
# from System.Text.Json import JsonSerializerOptions as
39+
40+
# json_options = JsonSerializerOptions()
41+
# json_options.Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
42+
# json_options.WriteIndented = True

0 commit comments

Comments
 (0)