Skip to content

Commit a2ec433

Browse files
authored
Merge pull request #473 from GeorgeOG/patch-1
serialize objects to bytes in a JSON compatible way
2 parents 8450921 + 74d27ec commit a2ec433

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

packages/serialization/json/kiota_serialization_json/json_parse_node.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,10 @@ def get_bytes_value(self) -> Optional[bytes]:
233233
Returns:
234234
bytearray: The bytearray value from the nodes
235235
"""
236-
base64_string = str(self._json_node)
236+
if isinstance(self._json_node, str):
237+
base64_string = self._json_node
238+
else:
239+
base64_string = json.dumps(self._json_node)
237240
if not base64_string:
238241
return None
239242
return base64_string.encode("utf-8")

packages/serialization/json/tests/unit/test_json_parse_node.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,13 @@ def test_get_bytes_value():
108108
parse_node = JsonParseNode("U2Ftd2VsIGlzIHRoZSBiZXN0")
109109
result = parse_node.get_bytes_value()
110110
assert isinstance(result, bytes)
111+
assert result.decode("utf-8") == "U2Ftd2VsIGlzIHRoZSBiZXN0"
112+
113+
114+
def test_get_bytes_json_compatible():
115+
parse_node = JsonParseNode({"test": 1})
116+
result = parse_node.get_bytes_value()
117+
assert json.loads(result.decode("utf-8")) == {"test": 1}
111118

112119

113120
def test_get_collection_of_enum_values():

0 commit comments

Comments
 (0)