diff --git a/packages/serialization/json/kiota_serialization_json/json_parse_node.py b/packages/serialization/json/kiota_serialization_json/json_parse_node.py index f560319f..b6682fbc 100644 --- a/packages/serialization/json/kiota_serialization_json/json_parse_node.py +++ b/packages/serialization/json/kiota_serialization_json/json_parse_node.py @@ -233,7 +233,10 @@ def get_bytes_value(self) -> Optional[bytes]: Returns: bytearray: The bytearray value from the nodes """ - base64_string = str(self._json_node) + if isinstance(self._json_node, str): + base64_string = self._json_node + else: + base64_string = json.dumps(self._json_node) if not base64_string: return None return base64_string.encode("utf-8") diff --git a/packages/serialization/json/tests/unit/test_json_parse_node.py b/packages/serialization/json/tests/unit/test_json_parse_node.py index 21ea6a0a..e82f8ef3 100644 --- a/packages/serialization/json/tests/unit/test_json_parse_node.py +++ b/packages/serialization/json/tests/unit/test_json_parse_node.py @@ -108,6 +108,13 @@ def test_get_bytes_value(): parse_node = JsonParseNode("U2Ftd2VsIGlzIHRoZSBiZXN0") result = parse_node.get_bytes_value() assert isinstance(result, bytes) + assert result.decode("utf-8") == "U2Ftd2VsIGlzIHRoZSBiZXN0" + + +def test_get_bytes_json_compatible(): + parse_node = JsonParseNode({"test": 1}) + result = parse_node.get_bytes_value() + assert json.loads(result.decode("utf-8")) == {"test": 1} def test_get_collection_of_enum_values():