{"library":"microsoft-kiota-serialization-json","title":"Microsoft Kiota JSON Serialization","description":"microsoft-kiota-serialization-json provides JSON serialization and deserialization capabilities for Kiota-generated Python SDKs. It includes factories for creating JSON serialization writers and parse nodes, enabling the conversion of `Parsable` objects to and from JSON format. The library is part of the larger Microsoft Kiota ecosystem and is currently at version 1.10.1, with frequent synchronized releases across its components.","language":"python","status":"active","last_verified":"Wed May 13","install":{"commands":["pip install microsoft-kiota-serialization-json"],"cli":null},"imports":["from microsoft_kiota_serialization_json import JsonSerializationWriterFactory","from microsoft_kiota_serialization_json import JsonParseNodeFactory","from microsoft_kiota_abstractions.serialization import Parsable"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import io\nfrom typing import Callable, Dict, Optional\nfrom uuid import UUID\n\nfrom microsoft_kiota_abstractions.serialization import Parsable, ParseNode, SerializationWriter\nfrom microsoft_kiota_serialization_json import JsonParseNodeFactory, JsonSerializationWriterFactory\n\nclass MyModel(Parsable):\n    \"\"\"A simple model for demonstration.\"\"\"\n    def __init__(self) -> None:\n        self._id: Optional[UUID] = None\n        self._name: Optional[str] = None\n        self.additional_data: Dict[str, object] = {}\n\n    @property\n    def id(self) -> Optional[UUID]:\n        return self._id\n\n    @id.setter\n    def id(self, value: Optional[UUID]) -> None:\n        self._id = value\n\n    @property\n    def name(self) -> Optional[str]:\n        return self._name\n\n    @name.setter\n    def name(self, value: Optional[str]) -> None:\n        self._name = value\n\n    def get_field_deserializers(self) -> Dict[str, Callable[[ParseNode], None]]:\n        \"\"\"Gets the deserialization information for the current model.\"\"\"\n        return {\n            \"id\": lambda n: setattr(self, 'id', n.get_uuid_value()),\n            \"name\": lambda n: setattr(self, 'name', n.get_str_value()),\n        }\n\n    def serialize(self, writer: SerializationWriter) -> None:\n        \"\"\"Serializes properties of the current model into a writer.\"\"\"\n        writer.write_uuid_value(\"id\", self.id)\n        writer.write_str_value(\"name\", self.name)\n        writer.write_additional_data_value(self.additional_data)\n\n# --- Usage Example ---\n\n# 1. Create a model instance\nmy_object = MyModel()\nmy_object.id = UUID(\"12345678-1234-5678-1234-567812345678\")\nmy_object.name = \"Test Item\"\nmy_object.additional_data[\"status\"] = \"active\"\n\n# 2. Serialize the model to JSON\nwriter_factory = JsonSerializationWriterFactory()\n# Use 'application/json' for JSON content type\nwith writer_factory.get_serialization_writer(\"application/json\") as writer:\n    # Pass None as the key for the root object\n    writer.write_object_value(None, my_object)\n    serialized_content_bytes = writer.get_serialized_content()\n\nprint(\"Serialized JSON:\")\nprint(serialized_content_bytes.decode('utf-8'))\n\n# 3. Deserialize the JSON back into a model instance\nparse_node_factory = JsonParseNodeFactory()\nwith parse_node_factory.get_parse_node(\"application/json\", serialized_content_bytes) as parse_node:\n    deserialized_object = parse_node.get_object_value(MyModel)\n\nprint(\"\\nDeserialized object:\")\nprint(f\"ID: {deserialized_object.id}\")\nprint(f\"Name: {deserialized_object.name}\")\nprint(f\"Additional data: {deserialized_object.additional_data}\")\n\n# Verify deserialization\nassert deserialized_object.id == my_object.id\nassert deserialized_object.name == my_object.name\nassert deserialized_object.additional_data[\"status\"] == my_object.additional_data[\"status\"]\nprint(\"\\nSerialization and deserialization successful!\")","lang":"python","description":"This example demonstrates how to serialize a `Parsable` object to JSON and then deserialize it back using `JsonSerializationWriterFactory` and `JsonParseNodeFactory`. It defines a simple `MyModel` class implementing the `Parsable` interface from `microsoft-kiota-abstractions`.","tag":null,"tag_description":null,"last_tested":"2026-04-24","results":[{"runtime":"python:3.10-alpine","exit_code":1},{"runtime":"python:3.10-slim","exit_code":1},{"runtime":"python:3.11-alpine","exit_code":1},{"runtime":"python:3.11-slim","exit_code":1},{"runtime":"python:3.12-alpine","exit_code":1},{"runtime":"python:3.12-slim","exit_code":1},{"runtime":"python:3.13-alpine","exit_code":1},{"runtime":"python:3.13-slim","exit_code":1},{"runtime":"python:3.9-alpine","exit_code":1},{"runtime":"python:3.9-slim","exit_code":1}]},"compatibility":{"tag":"stale","tag_description":"widespread failures or data too old to trust","last_tested":"2026-05-13","installed_version":"1.9.10","pypi_latest":"1.10.1","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":50,"avg_install_s":2.3,"avg_import_s":null,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"microsoft-kiota-serialization-json","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"23.2M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"microsoft-kiota-serialization-json","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"microsoft-kiota-serialization-json","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.2,"import_time_s":null,"mem_mb":null,"disk_size":"24M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"microsoft-kiota-serialization-json","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"microsoft-kiota-serialization-json","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"25.5M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"microsoft-kiota-serialization-json","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"microsoft-kiota-serialization-json","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.4,"import_time_s":null,"mem_mb":null,"disk_size":"26M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"microsoft-kiota-serialization-json","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"microsoft-kiota-serialization-json","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"17.3M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"microsoft-kiota-serialization-json","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"microsoft-kiota-serialization-json","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.2,"import_time_s":null,"mem_mb":null,"disk_size":"18M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"microsoft-kiota-serialization-json","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"microsoft-kiota-serialization-json","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"17.0M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"microsoft-kiota-serialization-json","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"microsoft-kiota-serialization-json","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.1,"import_time_s":null,"mem_mb":null,"disk_size":"17M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"microsoft-kiota-serialization-json","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"microsoft-kiota-serialization-json","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"22.7M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"microsoft-kiota-serialization-json","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"microsoft-kiota-serialization-json","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.6,"import_time_s":null,"mem_mb":null,"disk_size":"23M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"microsoft-kiota-serialization-json","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}