배열 공백 문제
본문
파일 업로드를 했을때 json으로 저장되게 만들고 있는데요
근데 배열이 공백일때 보통 "" 이렇게 되는데 저는 "null" 로 넣고 싶은데
다중일때 공백을 "null" 로 넣고싶은데 도무지 감이 안옵니다. 구글링 서치해도 다르게 결과 나오는데
고수님의 도움을 받고 싶네요
답변 2
챗지피티:
다음은 Python 예시 코드입니다.
import json
# 예시로 빈 배열 생성
empty_array = []
# 배열을 JSON으로 변환할 때, 공백을 "null"로 저장하는 함수
def custom_encoder(obj):
if isinstance(obj, list) and not obj:
return "null"
return obj
# 빈 배열을 JSON으로 저장할 때, 공백을 "null"로 저장하는 방법
json_data = json.dumps(empty_array, default=custom_encoder)
print(json_data)
위의 예시 코드에서는 json.dumps()
메서드의 default
매개변수를 이용하여 커스텀 인코더 함수를 작성합니다. 이 함수는 객체를 JSON 문자열로 변환할 때 호출됩니다.
커스텀 인코더 함수는 빈 리스트인 경우 "null"을 반환하도록 만들어졌습니다. 이 함수는 json.dumps()
메서드에 의해 자동으로 호출되므로, 빈 배열이 JSON으로 변환될 때 "null"이 저장됩니다.
이 방법을 이용하면 다중 배열에 대해서도 동일하게 처리할 수 있습니다. 단순히 리스트가 여러 개인 경우, 커스텀 인코더 함수를 재귀적으로 호출하여 각각의 리스트를 변환하면 됩니다.
!-->다시 배열로 설명 드리자면
$myTest = array("key1" => "ㄱ", "key2" => "ㄴ", "key3" => '', "key4" => null, "key5" => "");
이렇게 하면
array(5) {
["key1"] => string(3) "ㄱ"
["key2"] => string(3) "ㄴ"
["key3"] => string(3) ""
["key4"] => string(0) null
["key5"] => string(0) ""
}
이렇게 문자열 "null" 으로 넣어져야하는데
string(0) "" 이 됩니다.