JSON은 데이터를 효과적으로 저장하고 교환하기 위해 널리 사용되는 형식입니다. Python에서 JSON 형식으로 데이터를 시리얼라이즈(직렬화)하려면, 시리얼라이즈할 수 있는 클래스를 정의해야 합니다. 이러한 클래스를 JSON 시리얼라이즈 가능한 클래스(JSON serializable class)라고 합니다.
JSON 시리얼라이즈 가능한 클래스를 정의하려면, 클래스가 JSON 형식으로 표현될 수 있도록 `__dict__` 속성을 제공해야 합니다. 이 속성은 클래스 인스턴스의 모든 속성과 값의 사전을 반환합니다.
아래는 JSON 시리얼라이즈 가능한 클래스를 작성하는 예제입니다:
```python
import json
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def to_json(self):
return json.dumps(self, default=lambda obj: obj.__dict__, indent=4)
person = Person("John", 25)
person_json = person.to_json()
print(person_json)
```
위의 예제에서는 `Person` 클래스를 정의하고, `to_json` 메서드를 추가했습니다. `to_json` 메서드는 `json.dumps` 함수를 사용하여 인스턴스를 JSON 형식으로 변환합니다. `default` 매개변수는 객체를 직렬화하기 위해 사용될 함수를 지정합니다. 이 함수는 객체의 `__dict__` 속성을 반환하는 람다 함수로 정의되었습니다.
결과로는 JSON 형식으로 시리얼라이즈된 `Person` 객체가 출력됩니다:
```json
{
"name": "John",
"age": 25
}
```
위의 예제는 간단한 클래스를 사용하여 JSON 시리얼라이즈 가능한 클래스를 작성하는 방법을 보여줍니다. 객체에 복잡한 속성이나 메서드가 있는 경우 `default` 함수를 신중하게 정의해야 합니다.
자세한 내용을 원하시면 아래의 Python 문서 링크를 참조해주세요.
Python 문서 링크: https://docs.python.org/3/library/json.html#json.JSONEncoder
댓글