구성 파일 작성 및 데이터 구문 분석을 위한 JSON 확장

Susan Sarandon
풀어 주다: 2024-11-07 00:29:02
원래의
1038명이 탐색했습니다.

JSON Extensions for writing config files and parsing data

JSON은 다소 간단한 형식이므로 사용, 이해 및 구문 분석이 쉽습니다.
하지만 때로는 그 이상이 필요할 수도 있습니다. 몇 가지 일반적인 JSON 확장을 살펴보겠습니다.

에이슨

확장 JSON은 말 그대로입니다. 이 JSON 방언은 날짜와 같은 추가 데이터 유형을 지원하며 사용자가 직접 유형을 추가할 수도 있습니다.

다음은 날짜가 포함된 객체를 직렬화하고 다시 구문 분석할 때 일반 JSON과 EJSON의 차이점을 보여주는 예입니다.

const EJSON = require('ejson')

const event = {
  name: 'test',
  created_at: new Date()
}

const stingifiedJSON = JSON.stringify(event)
const stingifiedEJSON = EJSON.stringify(event)

// stringified
console.log(stingifiedJSON) // {"name":"test","created_at":"2024-11-06T00:00:00Z"}
console.log(stingifiedEJSON) // {"name":"test","created_at":{"$date":1730851200000}}

// re-parsed
console.log(typeof JSON.parse(stingifiedJSON).created_at) // string
console.log(EJSON.parse(stingifiedEJSON).created_at instanceof Date) // true
로그인 후 복사

이 기능은 예를 들어 네트워크를 통해 전송할 때 직렬화된 데이터를 다시 구문 분석하는 데 매우 유용합니다.
EJSON은 MongoDB가 내부적으로 사용하는 것입니다(JSON의 바이너리 형식인 BSON 외에).

이 기사에 나열된 JSON 확장 중에서 일반 JSON이 구문 분석할 수 있는 유일한 확장입니다!

NDSON

줄 바꿈으로 구분된 JSON은 일반적으로 한 번에 하나의 JSON 개체를 스트리밍하는 데 사용됩니다.

다음과 같습니다.

{"name":"test","created_at":"2024-11-02T00:00:00Z"}
{"name":"test 2","created_at":"2024-11-04T00:00:00Z"}
{"name":"test 3","created_at":"2024-11-06T00:00:00Z"}
로그인 후 복사

일반 JSON과 다른 점은 데이터를 배열로 래핑하지 않고 각 줄 뒤에 쉼표가 없다는 점입니다(줄 바꿈으로 구분되므로). 이는 스트리밍에 완벽한 후보입니다.

JSON 스트리밍 외에도 이 형식이 EJSON과 함께 NoSQL 클라이언트에서 문서를 내보내고 가져오는 데 사용되는 것을 보았습니다.

JSONC / JSON5

다음에는 각각 고유한 특징을 추가하는 다양한 구현이 있습니다. 가장 완벽한 JSON5를 살펴보겠습니다.

모두 동일한 목표, 즉 사람이 읽을 수 있고 구성 파일 관리를 위한 느슨한 JSON 형식을 달성하려고 노력합니다.

JSON5를 사용하면 주석, 후행 쉼표, 줄 바꿈, 따옴표 해제 키 등을 추가할 수 있습니다.

{
  // You can add comments!!
  unquoted: '< unquoted keys!',
  singleQuotes: 'I can use "double quotes" here',
  lineBreaks: "Supports line breaks!\
No \n's!",
}
로그인 후 복사

보시다시피 JSON 확장은 모양과 크기가 다양합니다. 일부는 애플리케이션에서 사용하기 위한 것이고 다른 일부는 개발자가 구성 파일을 더 쉽게 생성할 수 있도록 해줍니다.
다음에 JSON을 직렬화/파싱해야 할 경우 해당 확장 중 하나가 사용 사례에 적합한지 확인하세요!

위 내용은 구성 파일 작성 및 데이터 구문 분석을 위한 JSON 확장의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿