XML이 플랫폼 간 및 언어 간 이점을 갖는 방법에 대한 많은 홍보가 있지만 웹 서비스에 적용하지 않는 한 일반 웹 응용 프로그램에서 개발자는 XML이 생성되었는지 여부에 관계없이 XML을 구문 분석하는 데 어려움을 겪는 경우가 많습니다. 서버 측 XML을 처리하거나 JavaScript를 사용하여 XML을 구문 분석하는 클라이언트는 종종 코드가 복잡해지고 개발 효율성이 극도로 낮아집니다. 실제로 대부분의 웹 애플리케이션에서는 데이터를 전송하기 위해 복잡한 XML이 전혀 필요하지 않으며 XML의 확장성은 거의 이점이 없으며 많은 AJAX 애플리케이션은 동적 웹 페이지를 구축하기 위해 HTML 조각을 직접 반환하기도 합니다. XML을 반환하고 구문 분석하는 것과 비교할 때 HTML 조각을 반환하면 시스템의 복잡성이 크게 줄어들지만 어느 정도의 유연성도 부족합니다.
JSON은 이제 웹 애플리케이션 개발자에게 대체 데이터 교환 형식을 제공합니다. JSON이 정확히 무엇인지 살펴보겠습니다. JSON은 XML이나 HTML 조각보다 더 큰 단순성과 유연성을 제공합니다.
Ajax 리소스 센터
문서, 튜토리얼, 포럼, 블로그, 위키, 뉴스 등 Ajax 프로그래밍 모델에 대한 정보를 한 곳에서 볼 수 있는 원스톱 센터인 Ajax 리소스 센터를 방문하세요. Ajax에 대한 새로운 정보는 여기에서 확인할 수 있습니다.
JSON 데이터 형식 분석
JSON도 XML과 마찬가지로 일반 텍스트를 기반으로 하는 데이터 형식입니다. JSON은 본질적으로 JavaScript용으로 준비되어 있으므로 JSON을 사용하여 간단한 문자열, 숫자, 부울, 배열 또는 복잡한 개체를 전송할 수 있습니다.
문자열, 숫자, 부울은 JSON으로 표현하기가 매우 간단합니다. 예를 들어 JSON을 사용하여 간단한 문자열 "abc"를 나타내는 경우 해당 형식은 다음과 같습니다.
"abc"
문자 ",, / 및 일부 제어 문자(, f,
,
, )를 인코딩해야 하며, 다른 유니코드 문자를 직접 출력할 수 있습니다. 다음 그림은 문자열의 전체 표현 구조입니다.
그림 1. 문자열의 전체 표현 구조
숫자는 정수 또는 부동 소수점 수에 따라 다음과 같이 표현할 수 있습니다.
그림 2. 숫자의 표현 구조
이것은 대부분의 프로그래밍 언어의 표현 방법과 일치합니다. 예:
12345(정수)
-3.9e10(부동 소수점 수)
부울 유형은 true로 표현됩니다. 또는 거짓. 또한 JavaScript에서 null은 null로 표시됩니다. true, false 및 null에는 큰따옴표가 없으며, 그렇지 않으면 문자열로 처리됩니다.
JSON은 []를 사용하여 모든 요소를 포함하고 각 요소는 쉼표로 구분되어 배열 객체를 나타낼 수도 있으며 요소는 임의의 값일 수 있습니다. 예를 들어 다음 배열에는 문자열, 숫자, 부울 및 null이 포함됩니다.
["abc",12345,false,null]
객체 객체는 일련의 정렬되지 않은 키-값 쌍을 포함하는 {}로 JSON에서 표현됩니다. 실제로 여기서 객체는 Java의 객체와 동일합니다. Java의 클래스가 아닌 Map
예를 들어 주소 개체에는 다음 키-값이 포함됩니다.
city:Beijing
street:Chaoyang Road
postcode:100025(정수)
JSON으로 다음과 같이 표시됩니다.
{"city":"Beijing","street":" Chaoyang Road ","postcode":100025}
값은 다른 개체 또는 배열일 수도 있습니다. 따라서 복잡한 개체를 중첩하여 다음을 나타낼 수 있습니다. Person 객체는 다음과 같이 표현될 수 있는 이름 및 주소 객체를 포함합니다:
{"name":"Michael","address":
{"city":"Beijing","street":" Chaoyang Road ","postcode" :100025}
}
JSON 데이터를 처리하는 JavaScript
위에서는 JSON을 사용하여 데이터를 표현하는 방법을 소개했습니다. 다음으로 생성 방법도 해결해야 합니다. 클라이언트로 전송하기 위한 서버 측의 JSON 형식 데이터 및 클라이언트가 JavaScript를 사용하여 JSON 형식 데이터를 처리하는 방법.
먼저 JavaScript를 사용하여 웹페이지에서 JSON 데이터를 처리하는 방법을 살펴보겠습니다. 클라이언트가 간단한 JavaScript 메서드를 통해 사용자에게 JSON 데이터를 어떻게 나타내는지 확인할 수 있습니다.
function handlerJson() {
var j={"name":"Michael","address":
{" city":"Beijing","street":" 조양로 ","우편번호":100025}
};
document.write(j.name);
document.write(j .address. city);
}
서버에서 반환된 JSON 데이터가 위와 같다고 가정합니다.
{"name":"Michael","address":
{"city":"Beijing " ,"street":" Chaoyang Road ","postcode":100025}
}
JavaScript 변수에 할당하기만 하면 해당 변수를 즉시 사용하고 페이지의 정보를 업데이트할 수 있습니다. XML과 비교하면 됩니다. DOM에서 다양한 노드를 읽습니다. JSON을 사용하는 것은 매우 쉽습니다. 우리가 해야 할 일은 Ajax 요청을 보내고 서버에서 반환된 JSON 데이터를 변수에 할당하는 것뿐입니다. 이미 JSON 데이터를 처리하는 기능을 포함하는 Ajax 프레임워크가 많이 있습니다. 예를 들어 Prototype(인기 있는 JavaScript 라이브러리: http://prototypejs.org)은 evalJSON() 메서드를 제공합니다. 서버를 JavaScript 변수로 변환합니다.
new Ajax.Request("http://url", {
method: "get",
onSuccess: function(transport) {
var json = 전송 .responseText.evalJSON() ;
// TODO: document.write(json.xxx);
}
})
서버측에 JSON 형식 데이터 출력
서버에서 JSON 형식으로 데이터를 출력하는 방법에 대해 논의해 보겠습니다.Java를 예로 들어 Java 객체를 JSON 형식의 텍스트로 인코딩하는 방법을 보여 드리겠습니다.
문자열 개체를 JSON 형식으로 인코딩하는 경우 특수 문자만 처리하면 됩니다. 또한 문자열은 (') 대신 (")로 표현해야 합니다.