JSON 형식

JSON 형식

JSON 형식

JSON 이는 텍스트 기반 데이터 교환 형식이므로 프로그램뿐만 아니라 사람도 쉽게 읽을 수 있습니다. 그 이름은 영어 약어에 해당합니다 JavaScript Object Notation 다음과 같이 표준화되었습니다. ECMA-404. 구문상 매우 유사한 형식이지만 자바 스크립트, 객체 데이터를 인코딩하거나 획득하는 처리가 매우 쉽기 때문에 다른 많은 프로그래밍 언어에서도 사용됩니다(C, C + +, 자바, Python...) 예를 들어 비슷한 목적을 가지고 있지만 더 많은 메타 정보를 포함하고 있기 때문에 더 많은 텍스트가 필요하고 따라서 더 많은 공간을 차지하고 더 많은 대역폭을 소비하며 인코딩 및 디코딩에 더 많은 리소스가 필요한 XML에 대한 대안입니다. 포함된 정보입니다. JSON.

목차

    인코딩된 객체의 데이터 JSON 이들은 중괄호로 묶이고, 그 안에 포함된 다양한 속성은 쉼표로 구분되며, 속성 이름은 값 앞에 콜론으로 구분됩니다.

    JSON 형식의 객체 구문 개요

    속성 이름은 큰따옴표를 사용하여 따옴표로 묶어야 하며(일부 파서는 작은따옴표를 지원하지만) 이름에 일부 특수 문자(예: 악센트 표시)가 허용되지만 일부 분석 엔진의 기준을 피하고 특히 dot(object.property) 구문과 함께 속성을 사용할 때 충돌을 피하세요.

    위의 예에서는 단순, 숫자, 부울 또는 텍스트 값을 포함하는 6가지 속성이 있는 개체를 볼 수 있습니다. 하지만 형식으로 JSON, 속성은 텍스트 문자열(따옴표 안의 텍스트), 숫자(다른 형식) 또는 부울 값(true 또는 false) 외에 객체("특수 객체" null 포함) 또는 배열을 값으로 얻을 수도 있습니다. ).

    언어와 마찬가지로 자바 스크립트 (JSON 의 하위 집합입니다 자바 스크립트) 행렬을 표현하려면 해당 값을 대괄호로 묶고 쉼표로 구분합니다. 아래 예에서는 가장 간단한 사례를 보여줍니다. 숫자 값으로 구성된 1차원 배열, 즉 벡터입니다.

    En 자바 스크립트 배열의 모든 요소가 동일한 유형일 필요는 없습니다. 예를 들어 텍스트 문자열과 숫자 값을 혼합할 수 있습니다. 1차원 배열인 벡터는 다른 배열의 요소 중 하나일 수도 있으므로 다양한 길이의 다차원 배열을 구성할 수 있습니다. 다음 예에서는 세 가지 속성을 가진 객체를 보여줍니다. 첫 번째는 고정 길이의 2차원 배열, 두 번째는 가변 길이, 세 번째는 다양한 유형의 값을 가진 배열로 구성됩니다.

    다음 예에서는 다른 개체를 상위 개체의 속성 값으로 사용합니다. 중첩 수준에는 제한이 없으므로 부모의 속성 값인 객체는 다른 객체를 속성 값으로 가질 수도 있습니다.

    일어나는 일처럼 자바 스크립트, 이스케이프 코드는 텍스트 문자열 내에 특정 문자를 포함하는 데 사용됩니다. 가장 일반적인 방법은 이스케이프 표시줄, 문자 u 및 4개의 16진수 숫자로 표현되는 유니코드 코드를 다음 형식으로 사용하는 것입니다. "\u263A" 예를 들어 ☺를 참조하세요.

    대부분의 언어(C와 유사)에 존재하는 표준 문자는 다음과 같습니다.

    • 반동 \b 암호 ASCII 8 (0x08)
    • 도표 작성 장치 \t 암호 ASCII 9 (0x09) 일반적으로 HT(horizontal tabulator)로 표현됩니다.
    • 새로운 라인 \n 암호 ASCII 10 (0x0A) 보통 LF(Line Feed)로 표현됩니다.
    • 새 페이지 \f 암호 ASCII 12(0x0C) 일반적으로 FF(form Feed)로 표시됩니다.
    • 돌아 가기 \r 암호 ASCII 13 (0x0D) 일반적으로 CR(캐리지 리턴)으로 표현됩니다.
    • 인용 부호 \" 암호 ASCII 34 (0x22)
    • 분할 막대 \/ 암호 ASCII 57(0x2F)
    • 바라 인베르티다 \\ 암호 ASCII 134(0x5C)
    • 유니코드 코드 \uXXXX

    로부터 나오다 C (그리고 관련 유닉스 등등 GNU / 리눅스) 줄의 끝은 일반적으로 다음과 같이 표시됩니다. \n 그리고 그것은 선택되어야 하는 것입니다 JSON 그러나 일부 운영 체제는 다른 대안을 선호한다는 점을 기억하는 것은 흥미롭습니다. Windows는 일반적으로 \r\n 줄 끝 및 Mac OS(OS 이전) \r

    숫자 형식에 관해서도 참고 자료입니다. 자바 스크립트. 소수점 구분 기호는 마침표, 대시(ASCII 45 0x2D)는 음수 부호로 사용되며 지수 형식의 표기법 (과학적 표기법) 사용 E 표시기(대문자 또는 소문자일 수 있음)

    처음에 말했듯이, 텍스트로 얻어지는 데이터를 사용하기 위해서는 다양한 프로그래밍 언어에 분석 및 할당 기능이 있습니다. 다음 예는 이들이 어떻게 사용되는지 보여줍니다. 자바 스크립트. 콘솔에서 사용할 수 있도록 데이터 할당이 포함됩니다. JSON 통역사가 사용하는 ECMA 표준에 따라 발생할 수 있는 오류를 방지하려면 자바 스크립트 개체 할당이 이루어졌습니다. JSON 한 줄에. 6년 2016판(ECMA-262)는 여러 줄 문자열을 지원합니다. 에디션 5(2011년까지)에는 이스케이프 코드를 추가해야 합니다. \ 이전 문제에서는 직접 해결하거나 한 줄을 사용해야 했습니다.

    신규 사용자에게 혼동을 주지 말라는 경고 자바 스크립트. 코드 내부 자바 스크립트 객체를 생성하기 위해 텍스트 문자열을 사용할 필요는 없습니다. 이전 예에서는 예를 들어 서버에서 도착하는 데이터를 시뮬레이션하는 데 사용되었습니다. 객체를 변수에 할당하려면 다음과 같습니다.

    해당 객체는 예를 들어 다음 함수를 사용하여 텍스트로 변환될 수 있습니다. stringify 다음과 같이 :

    형식 JSON 매우 유연하지만 사람이 읽을 수 있는 텍스트 기반이기 때문에 몇 가지 단점이 있습니다. 첫 번째는 필요한 것보다 더 많은 메모리가 필요하고 더 많은 대역폭을 소비한다는 것입니다. 이전 예에서는 경제적이기보다는 읽기 쉽도록 하는 것을 목표로 하는 형식이 사용되었으므로 절약의 샘플이 아닙니다. 그럼에도 불구하고 형식의 요소(중괄호, 대괄호, 따옴표...)가 많이 있습니다. 표시된 정보에 비해 계속해서 리소스를 소비합니다.

    두 번째 문제는 순수하게 바이너리 데이터(예를 들어 이미지)를 다룰 때 발생하는데, 작은 부분을 다룰 때는 특수문자의 포맷팅을 해결하는 방법으로 설명하면 해결되지만, 특정 차원의 인코딩 정보에 관한 것이라면, 형식에 포함해야 합니다. JSON 다른 텍스트 형식을 사용합니다. 이 측면을 해결하기 위해 가장 많이 사용되는 인코딩은 다음과 같습니다. 베이스 많은 언어에는 정보를 한 방향 또는 다른 방향으로 변환하는 라이브러리가 있기 때문입니다. 조작되는 데이터가 주로 이러한 유형이거나 사람이 프로그램 없이 정보를 해석할 필요가 없는 경우 형식을 고려해 볼 가치가 있습니다. JSON 가장 적합합니다.

    코멘트 남기기

    당신은 놓쳤을 수도 있습니다