Skip to content

Commit fd975c2

Browse files
committed
fix: correctly serialize None in a list
1 parent e523b7f commit fd975c2

2 files changed

Lines changed: 7 additions & 4 deletions

File tree

packages/serialization/json/kiota_serialization_json/json_serialization_writer.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
U = TypeVar("U", bound=Parsable)
1515
K = TypeVar("K", bound=Enum)
1616
PRIMITIVE_TYPES = [bool, str, int, float, UUID, datetime, timedelta, date, time, bytes, Enum]
17+
PRIMITIVE_TYPES_WITH_NONE = PRIMITIVE_TYPES + [type(None)]
1718

1819

1920
class JsonSerializationWriter(SerializationWriter):
@@ -341,7 +342,7 @@ def write_null_value(self, key: Optional[str]) -> None:
341342
if key:
342343
self.writer[key] = None
343344
else:
344-
self.value = "null"
345+
self.value = None
345346

346347
def __write_dict_value(self, key: Optional[str], value: Dict[str, Any]) -> None:
347348
"""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:
474475
elif all(isinstance(x, Enum) for x in value):
475476
self.write_collection_of_enum_values(key, value)
476477
elif all(
477-
any(isinstance(x, primitive_type) for primitive_type in PRIMITIVE_TYPES)
478+
any(isinstance(x, primitive_type) for primitive_type in PRIMITIVE_TYPES_WITH_NONE)
478479
for x in value
479480
):
480481
self.write_collection_of_primitive_values(key, value)

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,8 @@ def test_write_additional_data_value(user_1, user_2):
259259
"groups": [{
260260
"friends": [user_2]
261261
}]
262-
}
262+
},
263+
"pinnedItems": [None, None]
263264
}
264265
)
265266
content = json_serialization_writer.get_serialized_content()
@@ -272,4 +273,5 @@ def test_write_additional_data_value(user_1, user_2):
272273
'"approvers": [{"id": "8f841f30-e6e3-439a-a812-ebd369559c36", '\
273274
'"updated_at": "2022-01-27T12:59:45.596117+00:00", "is_active": true}, '\
274275
'{"display_name": "John Doe", "age": 32}], "created_at": "2022-01-27", '\
275-
'"data": {"groups": [{"friends": [{"display_name": "John Doe", "age": 32}]}]}}'
276+
'"data": {"groups": [{"friends": [{"display_name": "John Doe", "age": 32}]}]}, '\
277+
'"pinnedItems": [null, null]}'

0 commit comments

Comments
 (0)