API 레퍼런스
이 섹션은 github.com/cybergodev/json 라이브러리의 전체 API 참조를 제공합니다.
두 가지 API 스타일
이 라이브러리는 패키지 함수(예: json.GetString(data, "path"), 인스턴스 생성 불필요)와 Processor 메서드(예: p.GetString(data, "path"), 설정 재사용, 사전 파싱 캐시, 훅 시스템 지원) 두 가지 API를 제공합니다. 어느 것을 사용할지 잘 모르시나요? Processor 가이드의 선택 의사결정 트리를 참조하세요.
모듈 인덱스
함수 API
| 모듈 | 설명 |
|---|---|
| 패키지 함수 | 패키지 레벨 함수 참조 (쿼리/수정/삭제/인코딩/파싱/배치/JSONL/파일/반복) |
| Processor | 프로세서 메서드 (패키지 함수와 미러 분류, 추가로 수명 주기와 사전 파싱 포함) |
타입과 인터페이스
| 모듈 | 설명 |
|---|---|
| Config | 설정 옵션 상세 (DefaultConfig / SecurityConfig / PrettyConfig) |
| 타입 정의 | 핵심 타입 (Config / Schema / Stats / AccessResult, Encoder / Decoder 포함) |
| 인터페이스 정의 | 확장 인터페이스 (CustomEncoder / Validator / Hook / PathParser) |
| 이터레이터와 IterableValue | Iterator / BatchIterator / ParallelIterator / StreamIterator 타입 |
| 제네릭 작업 | 제네릭 API (GetTyped[T] / StreamLinesInto[T] / Result[T]) |
| 상수와 오류 | 상수와 오류 타입 |
유틸리티와 보조
| 모듈 | 설명 |
|---|---|
| 유틸리티 함수 | CompareJSON / MergeJSON, 캐시 관리, 전역 프로세서, SafeError / RedactedPath, AccessResult 메서드 |
| 포맷팅 가이드 | Print 계열 마이그레이션 가이드 (제거된 API 의 대안) |
크로스 모듈 주제
| 모듈 | 설명 |
|---|---|
| 스트림 처리 | 대용량 파일 스트림 처리 가이드 |
| JSONL / NDJSON 처리 | JSONL 프로세서 (StreamJSONL / NDJSONProcessor / JSONLWriter) |
| 보안 검증 | 보안 모드 API (SecurityConfig / DangerousPattern / RegisterDangerousPattern) |
| Schema 검증기 | Schema 검증 (ValidateSchema / DefaultSchema / NewSchemaWithConfig) |
| Hook 훅 시스템 | 작업 가로채기 훅 (LoggingHook / TimingHook / ValidationHook / ErrorHook) |
| 커스텀 인코더 | 커스텀 인코더 (CustomEncoder / TypeEncoder) |
빠른 찾기
기능별 분류
경로 쿼리
| 함수 | 설명 |
|---|---|
Get, GetWithContext, GetString, GetInt, GetFloat, GetBool, GetArray, GetObject | 타입 안전 가져오기 |
GetTyped[T] | 제네릭 가져오기 |
SafeGet | 안전한 AccessResult 가져오기 |
GetMultiple | 배치 가져오기 |
수정 작업
| 함수 | 설명 |
|---|---|
Set, SetMultiple | 값 설정 |
SetCreate, SetMultipleCreate | 값 설정 및 자동 경로 생성 |
Delete, DeleteClean | 값 삭제 |
ProcessBatch | 배치 작업 |
인코딩/디코딩
| 함수 | 설명 |
|---|---|
Marshal, Unmarshal | 표준 인코딩/디코딩 (encoding/json 호환, cfg 추가 가능) |
MarshalIndent | 포맷팅 인코딩 (encoding/json.MarshalIndent 호환, cfg 추가 가능) |
Encode, EncodeWithConfig | 문자열로 인코딩 |
NewEncoder, NewDecoder | 스트림 인코딩/디코딩 |
Parse | JSON 파싱 |
포맷팅
| 함수 | 설명 |
|---|---|
Prettify | JSON 포맷팅 |
Compact | JSON 압축 (buffer 형식, encoding/json.Compact 호환) |
CompactString | JSON 압축 (문자열 입력/출력 형식, Processor.Compact 미러) |
파일 작업
| 함수 | 설명 |
|---|---|
LoadFromFile, SaveToFile | 파일 읽기/쓰기 |
LoadFromReader | Reader 에서 읽기 |
MarshalToFile, UnmarshalFromFile | 파일 인코딩/디코딩 |
스트림 처리
| 타입/메서드 | 설명 |
|---|---|
StreamLinesInto[T] | Reader 에서 JSONL 을 스트림으로 읽어 []T로 변환 |
ParseJSONL | JSONL 바이트를 []any로 파싱 |
ToJSONL, ToJSONLString | []any를 JSONL 형식으로 변환 |
JSONLWriter | JSONL 쓰기 (Write/WriteAll/WriteRaw) |
NDJSONProcessor | NDJSON/JSONL 프로세서 |
ForeachFile | 파일 스트림 처리 |
검증
| 함수 | 설명 |
|---|---|
Valid | JSON 검증 (encoding/json.Valid 호환) |
ValidWithConfig | 설정이 있는 JSON 검증 |
ValidateSchema | Schema 검증 (Schema 타입과 함께 사용) |
CompareJSON | JSON 동등성 비교 |
명명 규칙
라이브러리는 다음 명명 규칙을 따릅니다:
| 패턴 | 설명 | 예제 |
|---|---|---|
Get{Type} | 지정된 타입 가져오기 (defaultValue 지원) | GetString, GetInt |
GetTyped[T] | 제네릭 가져오기, T 반환 | GetTyped[User] |
New{Type} | 인스턴스 생성 | New (*Processor 반환), NewEncoder |
Default{Type} | 기본 설정 | DefaultConfig |
{Type}Config | 설정 프리셋 | SecurityConfig, PrettyConfig |
관련 문서
- 빠른 시작 -- 설치와 기본 사용법
- Processor 가이드 -- Processor 를 언제 사용할까
- 경로 표현식 문법 -- 경로 쿼리 문법
- 사용 예제 -- 실전 코드 예제
- 대용량 파일 처리 -- 스트림 처리 가이드