json 형식에서 배열은 1차원입니다. PHP에서 JSON 데이터 생성 및 구문 분석. Ajax 요청을 사용하여 브라우저와 서버 간에 데이터 전달




.JSON 형식은 일반적으로 Ajax 기반 웹사이트의 일부로 사용됩니다. XML에서는 점점 더 대중화되고 있습니다. .JSON 파일 확장자는 JavaScript 개체 설명 파일 유형을 참조합니다.Json은 데이터 액세스에 대한 대체 접근 방식을 제공합니다. 이 확장자로 파일을 열고 편집하려면 특수 편집기를 사용해야 합니다. 이 편집기 중 가장 인기 있고 기능이 뛰어난 편집기는 아래에 설명되어 있습니다.

JSON 확장자를 가진 파일을 여는 데 사용할 수 있는 방법입니다.

.JSON 파일 형식은 Java의 핵심 요소이며 주요 기능은 간단한 정보 및 콘텐츠 구조를 사용하여 작성하는 데 사용되는 표준 정보 교환 조직입니다. json 형식 설명은 콘텐츠 기반 및 명확한 레이아웃을 작성하는 쉬운 방법을 사용합니다. 원래 JavaScript의 하위 집합에 의존했던 이 기술은 이제 표준으로 간주되므로 이 파일 형식이 훨씬 더 자주 사용됩니다.

JSON 파일을 여는 방법

키 값을 데이터 구조와 병합하는 개념을 사용합니다. 그 인기와 접근성은 Javascript에서 널리 사용되는 데이터 교환 방법 때문이기도 합니다. 보거나 편집하기 위해 이 형식의 파일을 열려면 타사 응용 프로그램을 사용해야 합니다. 다음은 컴퓨터에서 .JSON 확장자를 가진 파일을 쉽게 열 수 있는 가장 인기 있고 기능적인 프로그램 목록입니다.

Altova XMLSpy는 XML(Extensible Markup Language) 파일을 위한 효율적이고 강력한 유틸리티, 편집 도구 및 통합 개발 환경(IDE)입니다. XML 기술을 기반으로 소프트웨어를 모델링, 변환 및 디버그하는 데 사용할 수 있습니다. 프로그램의 주요 이점은 .JSON 확장자를 지원한다는 것입니다. 이 소프트웨어에는 XML, XML Schema XSLT 및 XQuery를 사용하는 애플리케이션 작업에 필요한 모든 도구가 포함되어 있습니다. 프로그램을 시작하면 빈 메인 화면이 보이지만 기능을 평가하기 위한 데모 파일 세트가 있습니다. 이 키트에는 비용 보고서, 휴대용 XML 양식, SPS 프로젝트, 구매 주문서, XBRL 예제, EPUB 예제, XQuery 키트 및 HTML5 파일이 포함되어 있습니다.

XMLSpy는 Microsoft SQL Server, PostgreSQL, Oracle, MySQL, IBM DB2, Informix, Sybase 및 Microsoft Access에서 만든 데이터베이스와 함께 작동할 수 있습니다. 기능에는 XML 스키마 유효성 검사, DTD(문서 유형 정의) 변환 및 대용량 파일 최적화에 대한 오류 제한을 정의하는 XPath 평가가 포함됩니다. 응용 프로그램의 인터페이스는 직관적이며 현재 프로젝트에서 사용하는 데 필요한 도구를 쉽게 선택할 수 있습니다. 자주 사용하는 옵션(변환, 맞춤법 검사 등)은 메인 화면에서 빠른 접근 모드로 사용할 수 있습니다.

도구 메뉴에서 사용자는 스크립트 편집기와 폴더 비교 유틸리티에 액세스할 수 있습니다. 시스템에 이미 설치된 도구에 대한 빠른 액세스를 추가할 수 있습니다. Altova XMLSpy는 XML 데이터 생성 및 처리를 위한 최상의 솔루션이 될 수 있습니다. 작업에 필요한 모든 도구 세트를 제공함으로써 이 유틸리티는 사용자가 생산성을 높이도록 도와야 합니다.

Notepad++는 소스 코드를 생성 및 수정하고 JSON 파일을 보고 편집할 수 있는 기능을 제공하는 매우 인기 있는 무료 텍스트 편집기입니다. 이것은 시스템에 내장된 메모장에 대한 훌륭한 대체품입니다. 일반 텍스트 작성과 프로그래밍 모두에 효과적입니다. Notepad++ 기능에는 WYSIWYG 지원, 자동 코드 내용 완성, 구문 강조 표시, 매크로 기록 및 재생, 멀티뷰 모드에서 텍스트 또는 소스 코드 보기 및 수정이 포함됩니다.

Notepad++는 C++로 작성되었으며 Win32 API 및 STL만 사용하므로 빠른 작업과 더 작은 프로그램 크기를 보장합니다. 제조업체에 따르면 Notepad++는 시스템에 추가 부담을 주지 않고 가능한 한 많은 루틴을 최적화하여 전 세계 탄소 발자국을 줄이도록 설계되었습니다. 이 프로그램은 CPU 전력을 덜 사용하므로 컴퓨터가 전력 소비를 줄여 환경 오염을 줄일 수 있습니다. 이 프로그램은 가정에서뿐만 아니라 상업적 용도로도 무료입니다. 광고나 기부 제안을 표시하지 않습니다. 설치 후에는 약 10MB(내장된 FTP 클라이언트 및 ASCII-HEX 변환기 포함)가 소요되며 15개의 편집 가능한 텍스트 파일로 4MB 이하의 RAM이 사용됩니다. 물론 사용되는 메모리의 양은 열려 있는 파일의 수와 크기에 따라 다릅니다.

별도의 탭에 있는 Notepad++는 한 번에 여러 파일을 처리합니다. 색상은 열려 있는 파일이 저장되지 않았음을 나타냅니다(빨간색 플로피). 수십 개의 언어 지원으로 스크립트 생성 및 수정이 훨씬 쉬워졌습니다(PHP, C#, html, java, PowerShell 등). 또한 나만의 키워드 정의와 색상을 만들 수 있습니다. 이 프로그램을 사용하면 키보드 단축키를 사용하여 모든 기능을 제어할 수 있을 뿐만 아니라 자신만의 조합을 만들 수도 있습니다.

문구에 대한 정보를 찾고 있는 경우 해당 문구를 강조 표시하고 ALT+F2를 사용하거나 실행>GOOGLE 검색을 선택하여 GOOGLE에서 찾으십시오. Notepad++를 사용하면 키보드 단축키 또는 실행/실행 메뉴 옵션을 사용하여 널리 사용되는 모든 브라우저에서 코드를 테스트할 수 있습니다. Notepad++를 사용하면 텍스트 파일을 다양한 코드 버전으로 변환할 수 있으므로 웹사이트나 웹 애플리케이션을 만드는 사람들에게 특히 유용합니다. 플러그인 탭에는 NppFTP FTP 클라이언트를 설치할 수 있는 플러그인 관리자가 있어 예를 들어 웹 서버에서 파일을 빠르고 효율적으로 교체할 수 있습니다. 수십 개의 애드온 중 하나를 설치할 수 있습니다. 언어 번역기, 음성 발음 및 응용 프로그램을 떠나지 않고 즉시 스크립트를 실행할 수 있는 "NppExec"과 같은 범용 도구가 있습니다.

이 프로그램은 일반 텍스트 편집기의 속도, 작은 크기 및 성능을 결합합니다. 이 유틸리티는 하나 이상의 창에서 텍스트 편집과 같은 옵션으로 기능을 확장하고 시스템에 설치된 다른 인코딩 시스템뿐만 아니라 모든 유니코드 시스템의 문자를 쉽게 표시합니다. 편집기의 또 다른 장점은 JSON 파일을 볼 수 있는 기능을 지원한다는 것입니다. 이 소프트웨어는 Unix 및 Mac 형식에서 사용되는 문자를 표시합니다. 또한 사용자는 프로그램 미리보기를 사용하거나 열린 파일에 포함된 그래프를 보거나 테이블을 사용할 수 있습니다. 일반 메모장과 달리 AkelPad는 실행 취소 편집 옵션과 매우 빠른 텍스트 스니펫 찾기 및 바꾸기를 제공합니다.

주요 기능:

  • 단일 창 모드 또는 다중 창 편집기;
  • 사실상 무제한 파일 크기;
  • UTF-8 지원;
  • 실행취소/재실행;
  • 빠른 탐색;
  • 밀봉하다;
  • 언어 모듈 지원.

인터페이스는 메모장과 유사합니다. 이 프로그램은 일반 텍스트 편집기와 병렬로 설치하거나 대체할 수 있습니다.

Komodo Edit는 프로그래머와 웹마스터를 위한 멀티플랫폼 텍스트 편집기입니다. 가장 널리 사용되는 언어를 지원합니다. 버전은 Windows, Mac OS X 및 Linux에서 사용할 수 있습니다. 프로그램의 최신 버전은 여러 워크스테이션의 동기화, 실시간 공동 작업, 많은 언어 지원(및 기존 언어 개선) 및 일반적인 성능 향상을 제공합니다.

또한 CSS 스타일 파일과 HTML 문서를 편집하고 만들 수 있습니다. 이 소프트웨어는 코드 자동 완성, 구문 검사, 구문 색상 지정, 상수 함수 지원, 매크로 작성기, JSON 파일 읽기 바로 가기 등 많은 기능을 제공합니다. Go 언어에 대한 지원이 추가되었습니다. 별도의 창으로 표시되도록 툴팁 시스템을 변경하고 기본 Komodo 색 구성표를 Base16으로 변경했습니다. 기본 도구 모음은 기본적으로 숨겨져 있지만 영구적으로 복원할 수 있습니다.

Sublime Text는 프로그래머를 위한 기능적인 편집기이며 많은 사람들이 동급 최고의 프로그램으로 간주합니다. 여기에는 프로그래머에게 매우 효과적인 도구가 되는 흥미롭고 독특한 솔루션이 많이 포함되어 있습니다. Python 언어를 기반으로 하는 강력한 API가 있으므로 새로운 기능으로 확장할 수 있습니다. Sublime Text 프로그램의 가장 흥미로운 기능:

  • 빠른 탐색 - 프로그램을 사용하면 파일, 기호, 줄 또는 단어를 빠르게 탐색할 수 있습니다.
  • 다중 선택 - 덕분에 여러 줄의 변경, 변수 이름의 대량 변경과 같은 여러 변경을 한 번에 수행할 수 있습니다.
  • 명령 팔레트 - Sublime Text에는 정렬, 구문 변경, 들여쓰기 등과 같이 거의 사용되지 않는 명령이 포함된 명령 팔레트가 있습니다.
  • 전체 화면 모드 - 이 프로그램을 사용하면 코드가 있는 영역을 전체 화면으로 확대하여 코드 작성에 완전히 집중할 수 있습니다. 언제든지 탭과 메뉴가 있는 표준 인터페이스로 돌아갈 수 있습니다.
  • Split Edition - 편집기는 와이드스크린 또는 여러 모니터의 기능을 동시에 사용하며 동시에 2개의 파일을 편집할 수 있습니다.
  • 프로젝트의 빠른 전환 - 프로그램의 프로젝트는 변경되었지만 수동으로 저장되지 않은 파일을 포함하여 작업 공간의 모든 내용을 저장합니다.
  • 플러그인 API - 강력한 Python 기반 API를 지원하므로 자신만의 플러그인을 만들 수 있습니다.
  • 전체 사용자 지정 - 키, 메뉴, 조각, 매크로, 자동 완성 표시 - 간단한 JSON 파일에서 모든 것을 자유롭게 구성할 수 있습니다.
  • 다중 플랫폼 - 이 프로그램은 32비트 및 64비트 버전의 Windows, Max OS X 및 Linux에서 사용할 수 있으며 Windows용 휴대용 버전도 있습니다.

NFOPad는 텍스트 편집기가 내장된 작은 무료 NFO 및 JSON 파일 뷰어입니다. NFO 파일은 프로그램에 대한 필수 정보를 포함하는 ASCII로 조작되는 경우가 많은 텍스트 문서입니다. NFOPad는 표준 메모장을 모델로 한 응용 프로그램이지만 훨씬 더 광범위하고 추가 기능이 포함되어 있습니다. 이 프로그램은 유니코드 인코딩을 완벽하게 지원하고 하이퍼링크와 이메일 주소를 감지합니다. 응용 프로그램은 사용자 정의가 가능하며 여기에서 글꼴 ANSI 또는 ASCII를 설정하고 색상을 선택할 수 있습니다. 텍스트를 인쇄 및 검색하고 화면 너비를 설정할 수 있습니다. 소프트웨어는 드래그 앤 드롭 방식을 지원합니다. 도움말 파일을 편집할 때 NFOPad 응용 프로그램이 유용하다는 점은 주목할 가치가 있습니다.

공책

Windows 메모장은 운영 체제에 내장된 표준 응용 프로그램입니다. 기본 기능 외에도 이 프로그램은 JSON 파일을 보고 편집할 수 있는 기능이 뛰어납니다. Windows에서 응용 프로그램을 열려면 시작(또는 Win 키)을 클릭하고 메모장을 입력하기만 하면 됩니다.

파일에 문제를 일으킬 수 있는 다른 것

JSON 파일을 열고 작업할 수 없다고 해서 반드시 컴퓨터에 올바른 소프트웨어가 설치되어 있지 않다는 의미는 아닙니다. 파일 작업을 방해하는 다른 문제가 있을 수도 있습니다. 다음은 가능한 문제 목록입니다.

  • JSON 파일 손상.
  • 레지스트리 항목의 잘못된 JSON 파일 참조.
  • Windows 레지스트리에서 JSON 확장에 대한 설명을 실수로 삭제했습니다.
  • JSON 형식을 지원하는 애플리케이션의 불완전한 설치.
  • 열린 JSON 파일이 원치 않는 악성 소프트웨어에 감염되었습니다.
  • 컴퓨터에 JSON 파일 열기를 처리하기에 충분한 하드웨어 리소스가 없습니다.
  • JSON 파일을 열기 위해 컴퓨터에서 사용하는 하드웨어 드라이버가 오래되었습니다.

프로그램 중 하나를 올바르게 다운로드하여 설치했는데도 JSON 파일 문제가 계속 발생합니까? 어떤 예도 문제에 대한 설명과 일치하지 않으면 컴퓨터가 심각한 바이러스에 감염되었을 가능성이 높으므로 Windows를 다시 설치해야 할 수 있습니다.

속성-값 쌍으로 구성됩니다. 이는 브라우저와 서버 간의 비동기 통신에 사용되는 가장 일반적인 데이터 형식으로, 주로 XML(AJAX 사용)을 대체합니다.

JSON은 JavaScript에서 파생된 언어 독립적인 데이터 형식입니다. 2017년 현재 많은 프로그래밍 언어는 코드를 사용하여 데이터를 생성하고 구문 분석합니다. JSON 파일 이름은 .json 확장자를 사용합니다.

창조의 역사

JSON 형식은 원래 2000년대 초에 Douglas Crockford에 의해 개발되었으며 이후 두 개의 경쟁 표준(RFC 7159 및 ECMA-404)이 2013년에 이를 정의했습니다. ECMA 표준은 유효한 구문만 설명하는 반면 RFC는 일부 보안 및 상호 운용성 기본 사항을 다룹니다.

또한 I-JSON("Internet JSON"의 줄임말)으로 알려진 제한된 프로필을 정의하는 RFC 7493이 있습니다. 일부 상호 운용성 문제를 극복하려고 합니다. 이러한 각 문서는 유효한 JSON 문서입니다.

이 형식에 대한 필요성은 플러그인(예: Flash 또는 Java 애플릿)을 사용하지 않고 실시간으로 수행되는 서버와 브라우저 간의 실제 통신 프로토콜에 대한 필요성에서 비롯되었습니다.

개발 및 적용

이미 언급했듯이 StateSoftware의 설립자인 Douglas Crockford는 JSON 형식을 처음 식별하고 대중화했습니다. 그 후, 공동 창립자들은 표준 브라우저 기능을 사용하여 시스템을 만드는 데 동의하고 개발자가 웹 서버에 대한 지속적인 이중 연결로 애플리케이션을 구축할 수 있도록 추상화 계층을 제공했습니다. 동시에 두 개의 HTTP 연결을 열린 상태로 유지하고 데이터 교환이 없는 경우 브라우저의 표준 작업 시간까지 처리할 수 있게 되었습니다. 공동 창립자들은 원탁 토론을 열고 데이터 형식을 JSML 또는 JSON으로 명명하고 새로운 개발을 사용할 수 있는 라이센스 유형을 결정하기 위해 투표했습니다. 형식은 현재 오픈 소스입니다.

실용

JSON.org 웹사이트는 2002년에 시작되었습니다. 2005년 12월 야후! 이 형식으로 일부 웹 서비스를 제공하기 시작했습니다. Google은 2006년 12월에야 GData 웹 프로토콜에 JSON 피드를 사용하기 시작했습니다.

JSON 파일 형식은 원래 JavaScript 스크립팅 언어의 하위 집합(특히 Standard ECMA-262 3rd Edition-December)을 위한 것으로 일반적으로 사용되었습니다. 그러나 이것은 언어 독립적인 형식입니다. JSON 데이터를 구문 분석하고 생성하는 코드는 여러 프로그래밍 언어로 제공됩니다. JSON 웹 사이트에는 모든 라이브러리가 나열되어 있습니다.

온라인 JSON 형식은 처음에 JavaScript 및 ECMAScript의 엄격한 하위 집합으로 광고되었지만 때때로 JavaScript 및 ECMAScript 문자열에서 불법인 문자열에서 이스케이프되지 않은 일부 문자를 허용합니다.

JSON 자체는 2013년에 ECMA-404 표준으로 ECMA 국제 표준이 되었으며, 같은 해 RFC 7158에서 참조로 사용되었습니다. 2014년에 RFC 7159는 웹에서 JSON을 사용하기 위한 주요 참조가 되었습니다(예: MIME 애플리케이션/json).

데이터 유형, 구문 및 예

주요 JSON 데이터 유형은 다음과 같습니다.

  • 숫자: 소수 부분을 포함할 수 있고 지수 E 표기법을 사용할 수 있지만 숫자가 아닌 항목(예: NaN)을 포함할 수 없는 부호 있는 10진수입니다. 형식은 정수와 부동 소수점 숫자를 구분하지 않습니다. JavaScript는 모든 숫자 값에 배정밀도 부동 소수점 형식을 사용하지만 JSON을 구현하는 다른 언어는 이를 다르게 인코딩할 수 있습니다.

  • 문자열: 0개 이상의 유니코드 문자 시퀀스입니다. 문자열은 큰따옴표 문자로 구분되며 백슬래시 구문을 지원합니다.
  • 리터럴: true 또는 false 값.
  • 배열: 0개 이상의 값이 정렬된 목록으로 각 값은 모든 유형일 수 있습니다. 배열은 쉼표와 함께 대괄호를 사용합니다.
  • 개체: 이름(키라고도 함)이 문자열인 이름/값 쌍의 정렬되지 않은 모음입니다. 개체는 연관 배열을 나타내기 위한 것이므로 각 키가 고유한 것이 좋습니다(필수는 아님). 객체는 중괄호로 구분되며 쉼표를 사용하여 각 쌍을 구분하는 반면 각 쌍 내에서 콜론 문자는 키 또는 이름을 해당 값과 구분합니다.
  • Null: null 단어를 사용하는 빈 값입니다.

구분된 공백이 허용되며 구문 요소 주변 또는 사이에 배치될 수 있습니다(의미 및 구두점, 그러나 문자열 값 내에는 포함되지 않음). 이를 위해 4개의 특수 문자(공백, 가로 탭, 줄 바꿈 및 슬래시)만 공백으로 간주됩니다. 특히 바이트 순서 표시는 준수하는 구현에 의해 생성될 필요가 없습니다(JSON을 구문 분석할 때 허용될 수 있음). JSON 요청은 주석에 대한 구문을 제공하지 않습니다.

초기 버전(예: RFC 4627에 지정된 문서)에서는 유효한 문서가 객체 또는 배열 유형으로만 구성되어야 하며 그 안에 다른 유형이 포함될 수 있습니다. 레거시 웹 페이지에서 볼 수 있는 이 JSON 형식은 현재 사용되지 않습니다.

데이터 이식성 문제

Douglas Crockford는 원래 JSON이 JavaScript의 엄격한 하위 집합이라고 말했지만 JSON의 사양은 실제로 JavaScript에서 읽을 수 없는 문서를 만들 수 있도록 허용합니다. 특히 JSON은 유니코드 문자열 U+2028 LINE SEPARATOR 및 U+2029 PARAGRAPH SEPARATOR의 값이 따옴표로 묶인 문자열에서 이스케이프되지 않은 것처럼 표시되도록 허용하지만 JavaScript는 그렇지 않습니다. 이는 JSON이 "제어 문자"만 허용하지 않기 때문입니다. 최대 호환성을 위해 이러한 문자는 백슬래시로 이스케이프해야 합니다. 이 미묘함은 JSONP를 생성할 때 중요합니다.

JSON 형식: 여는 방법?

JSON 문서는 UTF-8, UTF-16 또는 UTF-32로 인코딩할 수 있으며 기본 인코딩은 UTF-8입니다. 이러한 표준은 기본 다국어 평면(U+10000 ~ U+10FFFF) 외부의 문자를 포함하여 전체 "유니코드" 문자 세트를 지원합니다. 그러나 이스케이프된 경우 이러한 문자는 UTF-16 서로게이트 쌍을 사용하여 작성해야 하며, 이는 JSON 형식의 일부 파서에서 누락된 세부 정보입니다. 여는 방법과 그러한 파일을 읽는 방법은 무엇입니까?

이 형식의 숫자는 프로그래밍 언어에서의 표현에 대해 불가지론적입니다. 정수와 부동 소수점 값 사이에는 구별이 없습니다. 일부 구현에서는 42, 42.0 및 4.2E + 1을 같은 숫자로 처리할 수 있지만 다른 구현에서는 그렇지 않을 수 있습니다. 또한 오버플로, 언더플로, 정밀도 손실 또는 반올림과 같은 문제에 대한 요구 사항이 없습니다. 또한 JSON 형식은 0.0이 -0.0과 다른지 여부에 관계없이 부호 있는 0 처리에 대해 아무 말도 하지 않습니다. JavaScript를 포함하여 IEEE 754 부동 소수점 표준을 사용하는 대부분의 구현은 부호 있는 0을 보존하지만 모든 JSON 구현이 가능한 것은 아닙니다.

자바스크립트에서의 사용법

JSON 형식은 JavaScript에서 파생되었으며 해당 구문은 (대부분) 언어의 하위 집합이므로 JavaScripteval 함수를 사용하여 JSON 데이터를 구문 분석할 수 있습니다. 이전 섹션에서 설명한 유니코드 문자열 종결자를 구문 분석하는 데 문제가 있기 때문에 eval 함수는 이를 대체해야 합니다.

문자열이 제대로 검증되지 않은 경우 안전하지 않습니다. 대신 JSON 구문 분석기 라이브러리 또는 해당 JavaScript 지원을 사용하여 JSON을 읽고 써야 합니다.

제대로 구현된 파서는 시스템에서 정의한 대로 유효한 JSON 형식만 허용하므로 잠재적인 악성 코드가 의도치 않게 실행되는 것을 방지합니다.

2010년부터 Firefox 및 Internet Explorer와 같은 웹 브라우저에는 구문 분석 및 JSON 형식 업로드에 대한 지원이 포함되었습니다.

지원되지 않는 기본 데이터 유형

JavaScript 구문은 JSON 표준에 포함되지 않은 몇 가지 기본 데이터 유형(Map, Set, Date, Error, Regular Expression, Function 및 기타 몇 가지)을 정의합니다. 이러한 JavaScript 데이터 유형은 두 프로그램이 유형 간 변환 방법에 동의하는 다른 형식으로 표현되어야 합니다. 오늘날 날짜를 문자열로 변환하는 것과 같은 몇 가지 사실상의 표준이 있지만 그 중 어느 것도 보편적으로 받아들여지지 않습니다. 다른 언어에는 다른 기본 유형 집합이 있을 수 있으며 이러한 유형의 변환을 처리하려면 신중하게 직렬화해야 합니다.

JSON 스키마

스키마는 유효성 검사, 문서화 및 상호 작용 관리를 위한 JSON 데이터 구조를 정의하는 데 사용됩니다. 애플리케이션에서 요구하는 데이터에 대한 일종의 계약과 이를 수정할 수 있는 방법을 제공합니다.

스키마는 XML 스키마(XSD)의 개념을 기반으로 하지만 독점적입니다. XSD에서와 마찬가지로 동일한 직렬화/역직렬화 기능이 스키마와 데이터 모두에 사용됩니다.

Schema는 현재 버전 5(2016년 10월 13일 릴리스)에 있는 인터넷 프로젝트입니다. 서로 다른 프로그래밍 언어에 사용할 수 있는 여러 유효성 검사기가 있으며 각각 다른 수준의 준수가 있습니다. 표준 파일 확장자는 없지만 일부 전문가는 .schema.json을 승인할 것을 제안합니다.

MIME 유형

JSON 텍스트의 공식 MIME 유형은 "application/json"입니다. 대부분의 최신 구현은 공식 MIME 유형을 채택했지만 많은 응용 프로그램은 계속해서 다른 MIME 유형에 대한 레거시 지원을 제공합니다. 많은 서비스 공급자, 브라우저, 서버, 웹 응용 프로그램, 라이브러리, 프레임워크 및 API는 콘텐츠가 "text/json" 또는 "text/javascript"처럼 보이는 MIME 유형을 사용하거나 예상하거나 인식합니다. 주목할만한 예로는 Google 검색 API, Yahoo!, Flickr, Facebook API, DojoToolkit 0.4 등이 있습니다.

JSON-RPC

JSON-RPC는 XML-RPC 또는 SOAP를 대체하기 위해 생성된 JSON 기반 원격 프로시저 호출(RPC) 프로토콜입니다. 몇 가지 유형의 데이터 및 명령만 정의하는 간단한 프로토콜입니다. 이를 통해 시스템은 알림(응답이 필요하지 않은 서버에 대한 정보)과 순서 없이 응답할 수 있는 서버에 대한 여러 호출을 보낼 수 있습니다.

아자지

비동기 JavaScript 및 JSON(또는 AJAJ)은 Ajax와 동일한 동적 웹 페이지 방법론을 참조하지만 XML 대신 JSON 데이터 형식이 주요 형식입니다. AJAJ는 웹 페이지가 브라우저에 로드된 후 새로운 데이터를 요청할 수 있도록 하는 웹 개발 기술입니다. 일반적으로 해당 페이지의 사용자 작업에 대한 응답으로 서버에서 렌더링합니다. 예를 들어 사용자가 검색 상자에 입력한 내용을 클라이언트 코드가 서버로 보내면 일치하는 데이터베이스 항목의 드롭다운 목록으로 즉시 응답합니다.

보안 문제들

JSON 형식의 텍스트는 데이터 직렬화 개체로 정의됩니다. 그러나 JavaScript 스크립팅 언어의 느슨한 하위 집합으로 설계되어 몇 가지 보안 문제가 발생합니다. 인라인 JavaScript와 같은 JSON 텍스트를 동적으로 실행하기 위해 Javascript 인터프리터를 사용하는 데 중점을 둡니다. 이로 인해 프로그램이 잘못되거나 악의적인 스크립트에 노출됩니다. 이는 인터넷에서 검색된 데이터로 작업할 때 심각한 문제입니다.

이 간단하고 대중적이지만 위험한 방법은 JavaScripteval 기능과의 호환성을 사용합니다.

일부 개발자는 JSON 텍스트가 JavaScript 코드와 구문적으로 유사하다고 잘못 생각하지만 이는 부분적으로만 사실입니다. 따라서 JavaScript 프로그램이 이 형식의 데이터를 구문 분석하는 쉬운 방법은 Javascript 표현식을 평가하도록 설계된 내장 JavaScripteval 함수를 사용하는 것입니다. 따라서 특정 파서를 사용하는 대신 인터프리터 자체가 JSON 데이터를 실행하는 데 사용되어 기본 JavaScript 개체를 생성합니다. 그러나 이 방법은 JSON 데이터에 임의의 "javascript" 코드가 포함될 가능성이 있는 경우 위험합니다. 그러면 동일한 방식으로 실행됩니다. 먼저 데이터의 유효성을 검사하는 단계를 수행하지 않으면 데이터와 전체 JavaScript 환경이 신뢰할 수 있는 단일 소스의 제어를 받지 못하는 경우 eval 메서드는 보안 취약성에 취약합니다.

예를 들어 데이터가 확인되지 않으면 악성 JavaScript 코드의 공격을 받습니다. 이러한 위반은 또한 데이터 도난, 인증 위조 및 기타 잠재적인 데이터 및 리소스 오용의 위험을 초래할 수 있습니다.

따라서 새로운 JSON.parse 함수는 eval보다 안전한 대안으로 설계되었습니다. JavaScript가 아닌 JSON 데이터를 처리하도록 특별히 설계되었습니다. 당초 ECMAScript 표준 제4판에 포함될 예정이었으나 성사되지 않았다. 버전 5에서 처음 추가되었으며 이제 주요 브라우저에서 지원됩니다.

JSON 또는 JavaScript Object Notation은 키-값 쌍 및 정렬된 목록의 원칙에 따라 구조화된 데이터의 구조화되지 않은 텍스트 표현을 구현하는 형식입니다. JSON은 JavaScript로 시작했지만 기본적으로 또는 특수 라이브러리를 통해 대부분의 언어에서 지원됩니다. 일반적으로 Json은 웹 클라이언트와 웹 서버 간에 정보를 교환하는 데 사용됩니다.

지난 15년 동안 JSON은 데이터 교환을 위한 공식 표준이 되었으며 웹의 거의 모든 곳에서 사용됩니다. 오늘날 거의 모든 웹 서버에서 사용됩니다. 많은 데이터베이스가 JSON을 지원한다는 사실도 이러한 인기로 이어졌습니다. PostgreSQL 및 MySQL과 같은 최신 관계형 데이터베이스는 이제 JSON으로 데이터 저장 및 내보내기를 지원합니다. MongoDB 및 Neo4j와 같은 데이터베이스도 JSON을 지원하지만 MongoDB는 약간 수정된 JSON 버전을 사용합니다. 이 기사에서는 JSON이 무엇인지, XML에 비해 장점, 단점, 언제 사용하는 것이 가장 좋은지에 대해 살펴보겠습니다.

JSON 형식이 필요한 이유와 작동 방식을 이해하려면 연습 없이는 할 수 없습니다. 먼저 다음 예를 살펴보겠습니다.

{
"firstName": "조나단",
"lastName": "프리맨",
"로그인 횟수": 4,
isWriter: 참
"worksWith": ["Spantree 기술 그룹", "InfoWorld"],
애완동물: [
{
"이름": "릴리",
"type": "너구리"
}
]
}

이 구조에서 우리는 사람의 일부 속성을 명확하게 정의했습니다. 먼저 이름, 성, 시스템의 승인 수, 이 사람이 작가인지 여부, 그가 일하는 회사 목록 및 애완 동물 목록을 결정했습니다. 이 구조 또는 이와 유사한 구조는 서버에서 웹 브라우저 또는 모바일 애플리케이션으로 전달될 수 있으며, 이 데이터를 표시하거나 저장하는 등 원하는 모든 작업을 이미 수행할 수 있습니다.

JSON은 문자열, 숫자, 부울(1 또는 0), 목록, 개체 및 null과 같은 최소한의 값 유형이 있는 일반 데이터 형식입니다. JSON은 JavaScript의 하위 집합이지만 대부분의 인기 있는 프로그래밍 언어에는 이러한 데이터 유형이 있으므로 다른 언어로 작성된 프로그램 간에 데이터를 전달하는 데 JSON이 적합합니다.

왜 JSON을 사용해야 합니까?

JSON의 유용성과 중요성을 이해하려면 웹에서 상호 작용의 역사에 대해 약간 이해해야 합니다. 2000년대 초반에 웹사이트의 상호작용이 변화하기 시작했습니다. 당시 브라우저는 정보를 표시하는 역할만 했고 웹 서버는 표시할 콘텐츠를 준비하는 모든 작업을 수행했습니다. 사용자가 브라우저에서 버튼을 클릭하면 요청이 서버로 전송되고 HTML 페이지가 어셈블되어 전송되어 표시할 준비가 됩니다. 이 메커니즘은 느리고 비효율적이었습니다. 이를 위해서는 데이터의 작은 부분만 변경된 경우에도 브라우저가 페이지의 모든 것을 다시 렌더링해야 했습니다.

당시에는 전송된 데이터의 양에 따라 전송 요금이 청구되었으므로 개발자는 전체 페이지를 새로고침하는 데 비용이 많이 든다는 사실을 깨닫고 사용자 경험을 개선하기 위한 새로운 기술을 모색했습니다. 그 당시 Internet Explorer 5에 추가된 백그라운드에서 웹 쿼리를 생성하는 기능은 표시할 데이터를 점진적으로 로드하는 매우 실행 가능한 접근 방식임이 입증되었습니다. 페이지를 다시 로드하는 대신 버튼을 클릭하면 백그라운드에서 실행되는 웹 요청이 실행됩니다. 콘텐츠는 로드되는 즉시 업데이트됩니다. 브라우저용 범용 프로그래밍 언어인 JavaScript를 사용하여 제어할 수 있습니다.

처음에는 데이터가 XML 형식으로 전달되었지만 JavaScript에서 사용하기 어려웠습니다. JavaScript에는 언어로 데이터를 나타내는 데 사용되는 개체가 이미 있으므로 Douglas Crockford는 JS 개체 구문을 JSON이라는 새로운 데이터 교환 형식의 사양으로 사용했습니다. 이 형식은 JavaScript 브라우저에서 읽고 구문 분석하기가 훨씬 쉬웠습니다. 개발자들은 곧 XML 대신 JSON을 사용하기 시작했습니다.

JSON 빠른 데이터 교환은 이제 서버와 클라이언트, 모바일 애플리케이션, 심지어 내부 시스템 서비스 간에 데이터를 전송하기 위한 사실상의 표준입니다.

JSON 대 XML

위에서 말했듯이 JSON의 주요 대안은 XML이었습니다. 그러나 XML은 최신 시스템에서 덜 일반적이 되고 있습니다. 그 이유를 아는 것은 매우 쉽습니다. 다음은 위에서 본 데이터를 XML을 통해 Json에 작성하는 예입니다.


홍옥
자유민
4
진실

스팬트리 테크놀로지 그룹
정보 세계

릴리
너구리


코드 중복성 외에도 실제로 데이터 입력이 두 배의 공간을 차지했기 때문에 XML은 데이터 구조를 구문 분석할 때 약간의 모호성을 도입합니다. XML을 JavaScript 개체로 변환하려면 수십에서 수백 줄의 코드가 필요할 수 있으며 구문 분석된 각 개체에 대한 미세 조정이 필요합니다. JSON을 JavaScript 개체로 변환하는 작업은 한 줄로 완료되며 구문 분석된 개체에 대한 사전 지식이 필요하지 않습니다.

JSON 제한 사항

JSON은 많은 프로그래밍 언어에서 쉽게 작업할 수 있는 비교적 간결하고 유연한 데이터 형식이지만 몇 가지 단점이 있습니다. 다음은 몇 가지 제한 사항입니다.

  • 구조가 없습니다.한편으로 이것은 어떤 방식으로든 데이터를 표현할 수 있는 완전한 유연성이 있음을 의미합니다. 반면에 구조화되지 않은 데이터를 쉽게 저장할 수 있습니다.
  • 한 종류의 숫자만 가능합니다. IEEE-754 부동 소수점 및 배정밀도 형식이 지원됩니다. 꽤 많은데, 다른 언어가 가지고 있는 다양한 숫자형을 사용할 수 없다.
  • 날짜 유형이 없습니다.개발자는 형식 불일치를 유발할 수 있는 날짜의 문자열 표현을 사용해야 합니다. 또는 Unix 시대(1970년 1월 1일) 이후의 밀리초 수를 날짜로 사용하십시오.
  • 아직 코멘트가 없습니다- 코드에서 바로 필요한 필드에 주석을 달 수 없습니다.
  • 세부 사항- JSON은 XML보다 덜 장황하지만 가장 간결한 데이터 교환 형식은 아닙니다. 고성능 또는 전문 서비스의 경우 보다 효율적인 형식을 사용하고 싶을 것입니다.

JSON은 언제 사용해야 합니까?

브라우저 또는 기본 모바일 앱과 상호 작용하는 소프트웨어를 개발하는 경우 JSON을 사용하는 것이 좋습니다. XML 사용은 더 이상 사용되지 않습니다. 서버 간 통신의 경우 JSON은 그다지 효율적이지 않을 수 있으며 Apache Avro 또는 Apache Thrift와 유사한 직렬화 프레임워크를 사용하는 것이 좋습니다. 여기서도 JSON은 나쁜 선택이 아니며 필요한 모든 것을 제공할 수 있습니다. 그러나 무엇을 선택해야할지 정확한 답은 없습니다.

MySQL 데이터베이스를 사용하는 경우 프로그램은 데이터베이스에서 수행되는 작업에 크게 의존합니다. JSON을 지원하는 관계형 데이터베이스에서는 JSON을 가능한 한 적게 사용하는 것이 좋습니다. 관계형 데이터베이스는 스키마별 데이터용으로 설계되었습니다. 현재 대부분이 JSON 데이터 형식을 지원하지만 작업 성능이 상당히 느려질 것입니다.

결론

JSON은 주로 웹 서버와 브라우저 또는 모바일 애플리케이션 간에 데이터를 전송하는 것을 목표로 하는 데이터 형식입니다. 형식은 디자인이 단순하고 유연하며 읽기 쉽고 이해하기 쉬우며 대부분의 프로그래밍 언어에서 작업하기 쉽습니다. 엄격한 스키마가 없기 때문에 형식에 유연성이 있지만 이러한 유연성으로 인해 데이터를 읽고 이해하기 어려운 경우가 있습니다.

Scala나 Elm과 같은 강력한 형식의 언어에서는 JSON으로 작업하기 어려울 수 있지만 형식이 널리 사용된다는 것은 복잡한 작업에도 도움이 되는 유틸리티와 라이브러리가 있음을 의미합니다. 이제 json이 무엇이며 어떻게 사용하는지 알았습니다.

JSON(JavaScript Object Notation, JavaScript object notation)은 인터넷을 통해 데이터를 전송하는 데 사용되는 구조화된 데이터 표현 형식입니다.

실제로 JSON 형식은 일반 문자열입니다.

JSON 구문

JSON 구문은 매우 작으며 전송된 데이터의 모양에 대한 설명만 포함합니다.

JSON 데이터 유형

JSON에서 데이터 유형은 단순 및 복합의 두 가지 범주로 나눌 수 있습니다.

  • - 텍스트 줄(일반적으로 간단히 - 줄이라고 함)
  • 숫자- 숫자
  • 부울– 논리(부울) 값
  • 없는

복합 유형에는 다음이 포함됩니다.

  • 물체- 사물
  • 정렬- 배열

JSON 구문은 JavaScript에서 차용한 것이므로 단순 유형과 복합 유형의 값을 나타내는 데 JavaScript와 동일한 구문이 사용됩니다.

단순 값

JSON 코드의 가장 간단한 예는 단순 유형의 값입니다.

5 2.3 "안녕하세요!" 참 null

JSON에서 문자열은 큰따옴표로만 묶어야 합니다. 작은따옴표를 사용하면 구문 오류가 발생합니다.

사물

JSON 개체는 쉼표로 구분된 0개 이상의 속성(이름:값 쌍)이 중괄호로 묶인 목록입니다. 개체 속성 이름은 큰따옴표로 묶어야 합니다. 속성 이름에 큰따옴표가 없거나 작은따옴표를 사용하는 것은 오류입니다. 속성은 모든 유형(단순 또는 복합)의 값을 포함할 수 있습니다.

( "이름": "호머", "나이": 40, "일": ( "장소": "원자력 발전소", "위치": "스프링필드" ) )

어레이

JSON 배열은 쉼표로 구분된 0개 이상의 값이 대괄호로 묶인 목록입니다. 배열은 모든 유형(단순 또는 복합)의 값을 포함할 수 있습니다.

[ ( "이름": "호머", "나이": 40, "일": ( "장소": "원자력 발전소", "위치": "스프링필드" ), "자식": [ "바트", "리사 ", "매기" ] ), ( "이름": "마지", "나이": 37세, "직장": ( "장소": "집", "위치": "스프링필드" ), "자식": [ "바트", "리사", "매기" ] ) ]

JSON이란 무엇이며 무엇을 할 수 있습니까? 이 기사에서는 JSON을 사용하여 데이터를 쉽게 다루는 방법을 배웁니다. 또한 PHP와 JavaScript를 사용하여 JSON으로 작업하는 방법도 살펴보겠습니다.

일반적으로 웹사이트나 웹 애플리케이션을 개발했다면 최소한 JSON에 대해 들어봤을 가능성이 있습니다. 그러나 JSON은 정확히 무엇을 의미합니까? 이 데이터 형식은 무엇을 할 수 있으며 어떻게 사용합니까?

이 기사에서는 json 형식 작업의 기본 사항을 배웁니다. 우리는 다음 주제를 따를 것입니다.

  • JSON 형식이란 무엇입니까?
  • JSON 문자열을 생성하는 방법은 무엇입니까?
  • JSON 데이터의 간단한 예
  • JSON과 XML 비교

시작하자!

JSON 형식이란 무엇입니까?

JSON은 구조화된 데이터를 저장하고 전달하는 간단한 텍스트 기반 방식입니다. 간단한 구문을 사용하면 간단한 숫자와 문자열, 배열, 객체를 모두 텍스트만 사용하여 쉽게 저장할 수 있습니다. 객체와 배열을 연결하여 복잡한 데이터 구조를 만들 수도 있습니다.

JSON 문자열을 만든 후에는 텍스트이기 때문에 모든 응용 프로그램이나 컴퓨터로 쉽게 보낼 수 있습니다.

JSON에는 다음과 같은 많은 이점이 있습니다.

  • 콤팩트하다
  • 사람이 읽을 수 있고 컴퓨터로 쉽게 읽을 수 있습니다.
  • 숫자 값, 문자열, 부울 형식, null 값, 배열 및 연관 배열과 같은 프로그래밍 형식으로 쉽게 변환할 수 있습니다.
  • 거의 모든 프로그래밍 언어에는 json 데이터 형식을 읽고 생성할 수 있는 기능이 있습니다.

말 그대로 JSON은 JavaScript Object Notation의 약자입니다. 앞에서 설명한 것처럼 이 형식은 개체 생성을 기반으로 하며 다른 프로그래밍 언어의 연관 배열과 다소 유사합니다.

JSON의 목적은 무엇입니까?

무엇보다 json은 자바스크립트와 서버사이드(php)간 데이터 교환에 사용된다. 즉, Ajax 기술을 위한 것입니다. 이는 여러 변수 또는 전체 데이터 배열을 전달할 때 매우 편리합니다.

예에서 어떻게 보이는지:

  1. 사용자가 클릭 썸네일 사진
  2. JavaScript는 이 이벤트를 처리하고 이미지의 ID를 전달하여 PHP 스크립트에 ajax 요청을 보냅니다.
  3. 서버에서 php는 데이터베이스에서 이미지 설명, 이미지 이름, 큰 이미지 주소 및 기타 정보를 가져옵니다. 수신하면 JSON 형식으로 변환하여 사용자 페이지로 다시 보냅니다.
  4. JavaScript는 JSON 응답을 수신하고, 데이터를 처리하고, html 코드를 생성하고, 설명 및 기타 정보와 함께 더 큰 이미지를 표시합니다.

이것은 브라우저에서 페이지를 다시 로드하지 않고 이미지를 확대하는 방법입니다. 이것은 부분적인 데이터를 받거나 소량의 정보를 서버로 전송해야 할 때 매우 편리합니다.

모두가 좋아하는 jQuery에는 ajax 요청을 통해 형식 작업을 도와주는 getJSON() 및 parseJSON() 함수가 있습니다.

JSON 문자열을 생성하는 방법은 무엇입니까?


다음은 JSON 문자열을 생성하기 위한 기본 규칙입니다.

  • JSON 문자열에는 값 배열과 객체(이름/값 쌍이 있는 연관 배열)가 모두 포함됩니다.
  • 배열은 대괄호 [ 및 ]로 묶어야 하며 쉼표로 구분된 값 목록을 포함할 수 있습니다.
  • 둥근 족쇄( 및 )로 감싼 개체에도 쉼표로 구분된 이름/값 쌍이 포함됩니다.
  • 이름/값 쌍은 필드 이름(큰따옴표), 콜론(:), 지정된 필드의 값으로 구성됩니다.
  • 배열 또는 객체의 값은 다음과 같습니다.
    • 숫자(정수 또는 점이 있는 분수)
    • 문자열(큰따옴표로 묶음)
    • 부울(참 또는 거짓)
    • 기타 배열(대괄호 [ 및 ]로 묶음)
    • 기타 개체(모양의 팔( 및 )로 감싸짐)
    • 널값(널)

중요한!값에 큰따옴표를 사용하는 경우 백슬래시(\")로 이스케이프합니다. 다른 프로그래밍 언어에서와 마찬가지로 16진수 인코딩 문자를 사용할 수도 있습니다.

JSON 데이터의 간단한 예

다음 예는 JSON 형식을 사용하여 온라인 상점의 "장바구니"에 데이터를 저장하는 방법을 보여줍니다.

( "orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [이메일 보호]", "contents": [ ( "productID": 34, "productName": "SuperWidget", "quantity": 1 ), ( "productID": 56, "productName": "WonderWidget", "quantity": 3 ) ], "주문 완료": 참 )

이 데이터를 하나씩 분해해 보겠습니다.

  1. 처음과 끝에는 곱슬활( 및 )을 사용하여 이것이 객체임을 분명히 합니다.
  2. 개체 내부에는 여러 이름/값 쌍이 있습니다.
  3. "주문 ID": 12345- 이름이 orderId이고 값이 12345인 필드
  4. "shopperName": "홍길동"- 이름이 shopperName인 필드 및 값 John Smith
  5. " 구매자이메일": "[이메일 보호] 예.com"- 이전 필드와 마찬가지로 구매자의 이메일이 여기에 저장됩니다.
  6. "내용물": [ ... ]- 값이 배열인 content라는 필드.
  7. "주문완료": 참- 값이 true인 orderCompleted라는 필드
  8. 내용물 배열 안에는 카트의 내용물을 표시하는 두 개의 객체가 있습니다. 각 제품 개체에는 productID, productName, quantity의 세 가지 속성이 있습니다.

마지막으로 JSON은 JavaScript의 개체와 동일하므로 이 예제를 쉽게 가져와 여기에서 JavaScript 개체를 만들 수 있습니다.

JSON과 XML 비교

대부분의 경우 적어도 웹 애플리케이션 내에서는 JSON을 XML의 대안으로 생각할 것입니다. Ajax의 개념은 원래 서버와 브라우저 간의 통신에 XML을 사용했지만 최근에는 Ajax 데이터를 전달하는 데 JSON이 더 많이 사용되었습니다.

XML은 많은 응용 프로그램에서 사용되는 검증된 기술이지만 JSON 형식의 장점은 더 작고 쓰기 및 읽기가 더 쉽다는 것입니다.

다음은 XML 형식으로만 재작성된 위의 JSON 예입니다.

orderID 12345 shopperName John Smith shopperEmail [email protected] contents productID 34 productName SuperWidget quantity 1 productID 56 productName WonderWidget quantity 3 주문완료 진실

보시다시피 JSON보다 몇 배 더 깁니다. 실제로 이 예는 1128자 길이인 반면 JSON 버전은 323자에 불과합니다. 또한 XML 버전은 읽기가 더 어렵습니다.

당연히 하나의 예만으로 판단할 수는 없지만 적은 양의 정보라도 XML보다 JSON 형식이 차지하는 공간이 적습니다.

PHP와 JS를 통해 JSON으로 작업하는 방법은 무엇입니까?

따라서 우리는 가장 흥미로운 JSON 형식의 실용적인 측면에 도달했습니다. 먼저 JavaScript에 경의를 표하고 PHP를 통해 JSON을 조작하는 방법을 살펴보겠습니다.

JavaScript로 JSON 형식 생성 및 읽기


JSON 형식은 단순하지만 웹 애플리케이션을 개발할 때 손으로 작성하기는 어렵습니다. 또한 JSON 문자열을 변수로 변환한 다음 코드에서 사용해야 하는 경우가 많습니다.

다행히 많은 프로그래밍 언어가 JSON 문자열 작업을 위한 도구를 제공합니다. 주요 아이디어는 다음과 같습니다.

창조json 문자열,일부 값을 포함하는 변수로 시작한 다음 데이터를 JSON 문자열로 변환하는 함수를 통해 전달합니다.

독서json 문자열,특정 데이터가 포함된 JSON 문자열로 시작하여 데이터가 포함된 변수를 생성하는 함수를 통해 문자열을 실행합니다.

이것이 JavaScript에서 어떻게 수행되는지 봅시다.

JavaScript 변수에서 JSON 문자열 만들기

JavaScript에는 javascript 변수를 사용하고 변수의 내용을 나타내는 json 문자열을 반환하는 내장 메서드 JSON.stringify() 가 있습니다. 예를 들어 이전에 만든 객체를 사용하여 JSON 문자열로 변환해 보겠습니다.

화면에 표시되는 내용은 다음과 같습니다.

("orderID":12345,"shopperName":"John Smith","shopperEmail":" [이메일 보호]", "contents":[("productID":34,"productName":"SuperWidget","quantity":1), ("productID":56,"productName":"WonderWidget","quantity":3) ], "주문 완료됨": 참)

JSON.stringify()는 공백 없이 JSON 문자열을 출력합니다. 읽기는 어렵지만 더 간결하여 데이터를 전송할 때 중요합니다.

JSON 문자열에서 JavaScript 변수 만들기

JSON 문자열을 구문 분석하는 방법에는 여러 가지가 있으며 가장 적합하고 안전한 방법은 JSON.parse() 메서드를 사용하는 것입니다. JSON 문자열을 사용하고 JSON 데이터를 포함하는 JavaScript 개체 또는 배열을 반환합니다. 다음은 예입니다.

여기에서 이전에 제공된 예제의 JSON 문자열을 포함하는 jsonString 변수를 만들었습니다. 그런 다음 이 줄을 JSON.parse()를 통해 전달하여 카트 변수에 저장되는 JSON 데이터를 포함하는 객체를 생성했습니다. 마지막으로 데이터의 존재를 확인하고 모달 경고 창을 사용하여 일부 정보를 표시합니다.

다음 정보가 표시됩니다.

실제 웹 애플리케이션에서 JavaScript 코드는 AJAX 요청을 보낸 후 서버의 응답으로 JSON 문자열을 받은 다음 문자열을 구문 분석하고 카트의 내용을 사용자에게 표시해야 합니다.

PHP로 JSON 형식 생성 및 읽기


PHP는 JavaScript와 마찬가지로 변수를 JSON 형식으로 또는 그 반대로 변환할 수 있는 기능이 있습니다. 그것들을 살펴봅시다.

PHP 변수에서 JSON 문자열 만들기

json_encode()는 PHP 변수를 사용하고 변수의 데이터를 나타내는 JSON 문자열을 반환합니다. 다음은 PHP로 작성된 "장바구니" 예제입니다.

12345, "shopperName" => "John Smith", "shopperEmail" => " [이메일 보호]", "콘텐츠" => array(array("productID" => 34, "productName" => "SuperWidget", "quantity" => 1), array("productID" => 56, "productName" => " WonderWidget", "수량" => 3)), "orderCompleted" => true); echo json_encode($cart); ?>

이 코드는 변수의 내용을 나타내는 유효한 JSON 문자열인 JavaScript 예제와 정확히 동일한 결과를 출력합니다.

("orderID":12345,"shopperName":"John Smith","shopperEmail":" [이메일 보호]","contents":[("productID":34,"productName":"SuperWidget","quantity":1),("productID":56,"productName":"WonderWidget","quantity":3) ],"주문 완료":참)

실제로 PHP 스크립트는 AJAX 요청에 대한 응답으로 JSON 문자열을 보내야 합니다. 여기서 JavaScript는 JSON.parse()를 사용하여 문자열을 변수로 바꿉니다.

json_encode() 함수에서 일부 문자를 16진수로 변환할 수 있는 추가 매개 변수를 지정할 수 있습니다.

JSON 문자열에서 PHP 변수 생성

위와 유사하게 JSON 문자열을 디코딩하고 내용을 변수에 넣을 수 있는 json_decode() 함수가 있습니다.

구매자이메일. "
"; echo $cart->contents->productName . "
"; ?>

JavaScript와 마찬가지로 이 코드는 다음을 출력합니다.

[이메일 보호]원더 위젯

기본적으로 json_decode()는 JSON 객체를 PHP 객체로 반환합니다. 일반적인 구문과 마찬가지로 ->를 사용하여 개체의 속성에 액세스합니다.

나중에 데이터를 연관 배열로 사용하려면 json_decode() 함수에 두 번째 매개변수로 true를 전달하면 됩니다. 다음은 예입니다.

$cart = json_decode($jsonString, true); echo $cart["shopperEmail"] . "
"; echo $cart["contents"]["productName"] . "
";

이것은 동일한 출력을 생성합니다.

[이메일 보호]원더 위젯

또한 json_decode() 함수에 추가 인수를 전달하여 큰 수 및 재귀 처리를 결정할 수 있습니다.

JSON 형식에 대한 결론

Ajax 기술을 사용하여 웹 애플리케이션을 만들려는 경우 JSON 형식을 사용하여 서버와 브라우저 간에 데이터를 교환해야 합니다.