JSON
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
모듈 json은 JSON 관련 함수의 Starlark 모듈입니다.
회원
디코딩
unknown json.decode(x, default=unbound)
decode 함수에는 필수 위치 매개변수(JSON 문자열)가 하나 있습니다.
문자열이 나타내는 Starlark 값을 반환합니다.
"null"
, "true"
, "false"
은 None
, True
, False
로 파싱됩니다.
- 숫자는 int로 파싱되며, 소수점이나 지수가 포함된 경우 float로 파싱됩니다. JSON에는 유한하지 않은 값에 대한 문법이 없지만 매우 큰 값은 무한대로 디코딩될 수 있습니다.
- JSON 객체는 고정되지 않은 새 Starlark dict로 파싱됩니다. 동일한 키 문자열이 객체에 두 번 이상 발생하면 키의 마지막 값이 유지됩니다.
- JSON 배열이 새로운 고정되지 않은 Starlark 목록으로 파싱됩니다.
x
이 유효한 JSON 인코딩이 아니고 선택적
default
매개변수가 지정된 경우 (
None
로 지정된 경우 포함) 이 함수는
default
값을 반환합니다.
x
이 유효한 JSON 인코딩이 아니고 선택적
default
매개변수가 지정되지
않은 경우 이 함수는 실패합니다.
매개변수
매개변수 |
설명 |
x
|
string;
required
디코딩할 JSON 문자열입니다.
|
default
|
기본값은 unbound 입니다. 지정된 경우 x 를 디코딩할 수 없을 때 반환할 값입니다.
|
encode
string json.encode(x)
encode 함수는 필수 위치 인수를 하나 허용하며, 이 인수는 다음과 같이 사례별로 JSON으로 변환됩니다.
- None, True, False는 각각 'null', 'true', 'false'로 변환됩니다.
- int는 아무리 커도 10진수 정수로 인코딩됩니다. 일부 디코더는 매우 큰 정수를 디코딩하지 못할 수 있습니다.
- 부동 소수점은 숫자 값이 정수이더라도 소수점이나 지수 또는 둘 다를 사용하여 인코딩됩니다. 유한하지 않은 부동 소수점 값을 인코딩하면 오류가 발생합니다.
- 문자열 값은 값을 나타내는 JSON 문자열 리터럴로 인코딩됩니다. 짝이 없는 각 서러게이트는 U+FFFD로 대체됩니다.
- dict는 키 순서대로 JSON 객체로 인코딩됩니다. 키가 문자열이 아니면 오류입니다.
- 목록 또는 튜플은 JSON 배열로 인코딩됩니다.
- 구조체와 유사한 값은 필드 이름 순서로 JSON 객체로 인코딩됩니다.
애플리케이션 정의 유형은 자체 JSON 인코딩을 정의할 수 있습니다.
다른 값을 인코딩하면 오류가 발생합니다.
매개변수
encode_indent
string json.encode_indent(x, *, prefix='', indent='\t')
encode_indent 함수는
json.indent(json.encode(x), ...)
와 동일합니다. 형식 지정 매개변수에 대한 설명은
indent
를 참고하세요.
매개변수
매개변수 |
설명 |
x
|
필수
|
prefix
|
string;
default is ''
|
indent
|
string;
default is '\t'
|
indent
string json.indent(s, *, prefix='', indent='\t')
indent 함수는 유효한 JSON 인코딩 문자열의 들여쓰기된 형식을 반환합니다.
각 배열 요소 또는 객체 필드는 중첩 깊이에 따라 접두사 문자열과 하나 이상의 들여쓰기 문자열 복사본으로 시작하여 새 줄에 표시됩니다.
이 함수는 필수 위치 매개변수(JSON 문자열) 하나와 선택적 키워드 전용 문자열 매개변수(prefix 및 indent) 두 개를 허용합니다. 이 매개변수는 각 새 줄의 접두사와 들여쓰기 단위를 지정합니다.
입력이 유효하지 않으면 함수가 실패하거나 유효하지 않은 출력을 반환할 수 있습니다.
매개변수
매개변수 |
설명 |
s
|
문자열;
필수
|
prefix
|
string;
default is ''
|
indent
|
string;
default is '\t'
|