JSON 출시
xmlHttpRequest 구성 요소를 대화형 도구로 사용하고 XML을 데이터 전송 형식으로 사용하세요.
[ XML ]
XML을 전송 형식으로 사용할 때의 장점:
1. 표준을 준수하는 균일한 형식
2. 원격으로 쉽게 상호 작용할 수 있습니다. , 데이터 공유가 더 편리합니다
단점:
1. XML 파일 형식이 크고, 형식이 복잡하며, 전송 대역폭을 차지합니다
2. 서버와 클라이언트는 XML을 구문 분석하기 위해 많은 코드를 필요로 하며, 서버 측 코드와 클라이언트 측 코드 모두 매우 복잡하고 유지 관리가 어려워졌습니다
3. 클라이언트 측에서 서로 다른 브라우저 간에 XML을 구문 분석하는 방식이 일치하지 않습니다. 그리고 많은 코드를 반복적으로 작성해야 합니다
4. 서버측과 클라이언트에서 XML을 파싱하면 결국 리소스와 시간이 소모됩니다
[ JSON ]
XML 형식으로 변환하는 데 다른 형식이 있나요? JSON(JavaScript Object Notation)이라는 경량 데이터가 있습니다. 교환 형식으로 XML 작업을 대체할 수 있습니다.
장점:
1. 간단하고 읽고 쓰기 쉬우며 형식이 압축되어 대역폭을 거의 차지하지 않습니다
2. 이 언어는 구문 분석하기 쉽고 클라이언트측 JavaScript는 eval()을 통해 JSON 데이터를 간단히 읽을 수 있습니다.
3. 지원 서버측 구문 분석을 용이하게 하는 ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby 및 기타 언어 서버측 언어를 포함한 여러 언어
4. PHP 세계에서는 PHP-JSON 및 PHP 직렬화된 프로그램을 직접 호출할 수 있게 해주는 JSON-PHP가 등장했습니다. PHP 서버측 개체, 배열 등을 직접 JSON 형식으로 생성할 수 있어 클라이언트 액세스 및 추출에 편리합니다.
또한 PHP의 PEAR 클래스 지원을 제안했습니다. (http://www.php.cn/)
5. JSON 형식은 서버 측 코드에서 직접 사용할 수 있기 때문에 서버가 크게 단순화됩니다. 터미널과 클라이언트에서의 코드 개발 양은 적지만, 완료된 작업은 동일하게 유지되며 유지 관리가 쉽습니다
단점:
1. XML 형식만큼 널리 사용되지 않으며 다재다능하지도 않습니다
2. 웹 서비스에서 JSON 형식의 홍보는 아직 초기 단계입니다
PS: Google의 Ajax는 JSON 템플릿을 사용하여 만들어진다고 합니다
JSON 정의
JSON(JavaScript Object Notation)입니다. 읽고 쓰기 쉬울 뿐만 아니라 기계가 쉽게 구문 분석하고 생성할 수 있는 경량 데이터 교환 형식입니다. 이는 ECMA262 언어 사양(3판 1999-12)의 JavaScript 프로그래밍 언어 하위 집합을 기반으로 합니다. JSON은 프로그래밍 언어에 독립적인 텍스트 형식을 채택하지만 C와 유사한 언어(C, C++, C#, Java, JavaScript, Perl, Python 등 포함)의 습관도 사용합니다. 이러한 특성이 JSON을 만듭니다. 이상적인 데이터 교환 형식입니다.
JSON의 구조는 다음 두 가지 사항을 기반으로 합니다
1. "이름/값" 쌍의 집합입니다. 다른 언어에서는 객체, 레코드, 구조로 이해됩니다. 딕셔너리(dictionary), 해시 테이블(hash table), 키 리스트(keyed list) 등
2. 정렬된 값 목록은 대부분의 언어에서 배열(array)로 이해됩니다.
JSON 사용법:
JSON은 JavaScript 개체를 나타내는 특정 문자열 형식으로 시작합니다. 이러한 형식의 문자열을 JavaScript 변수에 할당하면 해당 변수는 개체 참조가 되며 이 개체는 문자열에서 생성됩니다. 다소 혼란스러워 보이기 때문에 예시를 사용하여 설명하겠습니다.
여기서는
사용자 ID
사용자 이름
사용자 이메일
다음 속성을 사용하여 사용자 개체를 생성해야 한다고 가정합니다. 다음 JSON 형식을 사용하여 사용자 개체를 나타낼 수 있습니다.
JavaScript 코드
{"UserID":11, "Name":"Truly", "Email":"zhuleipro◎hotmail.com"}
그런 다음 이 문자열을 JavaScript 변수에 할당하면 다음을 수행할 수 있습니다. 객체의 속성을 직접 사용합니다.
전체 코드:
JavaScript 코드
<script> var User = {"UserID":11, "Name":"Truly", "Email":"zhuleipro◎hotmail.com"}; alert(User.Name); </script>
실제 사용에서는 더 복잡할 수 있습니다. 예를 들어 Name에 대해 FirstName과 LastName이 포함되도록 보다 자세한 구조를 정의합니다.
JavaScript 코드
{"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"}
전체 코드:
JavaScript 코드
<script> var User = {"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"}; alert(User.Name.FirstName); </script>
이제 새로운 요구 사항을 추가합니다. 페이지 중 하나에는 단일 사용자 정보가 아닌 사용자 목록이 필요하므로 사용자를 생성해야 합니다. 목록 배열.
다음 코드는 JSON을 사용하여 이 사용자 목록을 정의하는 방법을 보여줍니다.
JavaScript 코드
[ {"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"}, {"UserID":12, "Name":{"FirstName":"Jeffrey","LastName":"Richter"}, "Email":"xxx◎xxx.com"}, {"UserID":13, "Name":{"FirstName":"Scott","LastName":"Gu"}, "Email":"xxx2◎xxx2.com"} ]
전체 코드:
JavaScript 코드
<script> var UserList = [ {"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"}, {"UserID":12, "Name":{"FirstName":"Jeffrey","LastName":"Richter"}, "Email":"xxx◎xxx.com"}, {"UserID":13, "Name":{"FirstName":"Scott","LastName":"Gu"}, "Email":"xxx2◎xxx2.com"} ]; alert(UserList[0].Name.FirstName); </script>
사실 , "." 인용 속성 외에도 다음 명령문을 사용할 수도 있습니다:
JavaScript 코드
코드 복사 코드는 다음과 같습니다.
alert(UserList[0]["Name"]["FirstName"]); 或者 alert(UserList[0].Name["FirstName"]);
现在读者应该对JSON的使用有点认识了,归纳为以下几点:
对象是属性、值对的集合。一个对象的开始于“{”,结束于“}”。每一个属性名和值间用“:”提示,属性间用“,”分隔。
数组是有顺序的值的集合。一个数组开始于"[",结束于"]",值之间用","分隔。
值可以是引号里的字符串、数字、true、false、null,也可以是对象或数组。这些结构都能嵌套。
字符串和数字的定义和C或Java基本一致。
小节:
本文通过一个实例演示,初步了解了JSON 的强大用途。可以归结如下:
JSON 提供了一种优秀的面向对象的方法,以便将元数据缓存到客户机上。
JSON 帮助分离了验证数据和逻辑。
JSON 帮助为 Web 应用程序提供了 Ajax 的本质。