diff --git a/packages/serialization/json/kiota_serialization_json/json_serialization_writer.py b/packages/serialization/json/kiota_serialization_json/json_serialization_writer.py index 00e66bc..765a608 100644 --- a/packages/serialization/json/kiota_serialization_json/json_serialization_writer.py +++ b/packages/serialization/json/kiota_serialization_json/json_serialization_writer.py @@ -14,6 +14,7 @@ U = TypeVar("U", bound=Parsable) K = TypeVar("K", bound=Enum) PRIMITIVE_TYPES = [bool, str, int, float, UUID, datetime, timedelta, date, time, bytes, Enum] +PRIMITIVE_TYPES_WITH_NONE = PRIMITIVE_TYPES + [type(None)] class JsonSerializationWriter(SerializationWriter): @@ -341,7 +342,7 @@ def write_null_value(self, key: Optional[str]) -> None: if key: self.writer[key] = None else: - self.value = "null" + self.value = None def __write_dict_value(self, key: Optional[str], value: Dict[str, Any]) -> None: """Writes the specified dictionary value to the stream with an optional given key. @@ -474,7 +475,7 @@ def write_any_value(self, key: Optional[str], value: Any) -> Any: elif all(isinstance(x, Enum) for x in value): self.write_collection_of_enum_values(key, value) elif all( - any(isinstance(x, primitive_type) for primitive_type in PRIMITIVE_TYPES) + any(isinstance(x, primitive_type) for primitive_type in PRIMITIVE_TYPES_WITH_NONE) for x in value ): self.write_collection_of_primitive_values(key, value) diff --git a/packages/serialization/json/tests/unit/test_json_serialization_writer.py b/packages/serialization/json/tests/unit/test_json_serialization_writer.py index 9f3fd4c..48ee7f8 100644 --- a/packages/serialization/json/tests/unit/test_json_serialization_writer.py +++ b/packages/serialization/json/tests/unit/test_json_serialization_writer.py @@ -259,7 +259,8 @@ def test_write_additional_data_value(user_1, user_2): "groups": [{ "friends": [user_2] }] - } + }, + "pinnedItems": [None, None] } ) content = json_serialization_writer.get_serialized_content() @@ -272,4 +273,5 @@ def test_write_additional_data_value(user_1, user_2): '"approvers": [{"id": "8f841f30-e6e3-439a-a812-ebd369559c36", '\ '"updated_at": "2022-01-27T12:59:45.596117+00:00", "is_active": true}, '\ '{"display_name": "John Doe", "age": 32}], "created_at": "2022-01-27", '\ - '"data": {"groups": [{"friends": [{"display_name": "John Doe", "age": 32}]}]}}' + '"data": {"groups": [{"friends": [{"display_name": "John Doe", "age": 32}]}]}, '\ + '"pinnedItems": [null, null]}'