본문으로 건너뛰기

JSONC

storh 저장 파일은 JSON 객체이며, 읽을 때 JSONC을 허용합니다. 줄 주석, 블록 주석 및 후행 쉼표를 사용할 수 있어 편집기에서 레코드 파일을 열고 주석을 추가하기 편리합니다. storh는 여전히 해당 파일을 파싱합니다.

Jsonc
{
  // Application-owned fields live under data.
  "id": "018bcfe5-6800-7000-8000-000000000000",
  "data": {
    "title": "Home",
  },
}

읽기는 먼저 엄격한 json_decode 파서를 시도하고 실패할 때만 JSONC 제거기를 사용하므로 정규 파일은 주석 처리 비용을 부담하지 않습니다.

storh에서 쓰는 형식

쓰기 결과는 정규 형식의 간결한 한 줄 JSON이며 끝에 줄바꿈이 붙습니다:

Text
{"id":"018bcfe5-6800-7000-8000-000000000000","data":{"title":"Home"}}

주석과 사용자 지정 서식은 해당 레코드를 storh가 다시 기록할 때까지 유지됩니다. 같은 ID에 put()를 수행하면 파일 전체가 표준 출력으로 교체되므로 주석은 오래 보존되는 메타데이터가 아니라 임시 메모로 취급하세요. 오래 보존해야 하는 정보는 data에 저장하세요.

인코딩은 유니코드와 슬래시를 이스케이프하지 않고 보존하며 부동 소수점 0의 소수 부분도 유지하므로(1.0는 1.0로 유지됨), 동일한 데이터를 디코딩한 뒤 다시 인코딩해도 바이트 단위로 동일합니다. 인덱스 매니페스트와 기타 내부 메타데이터 파일은 같은 읽기 허용 범위를 가진 JSON 객체입니다.

Jsonc::decode_object()는 객체가 아닌 문서와 잘못된 입력을 거부합니다. Jsonc::encode_object()와 Jsonc::encode_compact_object()는 배열을 객체 문서로 기록합니다.