>웹 프론트엔드 >JS 튜토리얼 >js_javascript 기술에서 JSON 문자열을 JSON 객체로 변환하는 가장 좋은 방법

js_javascript 기술에서 JSON 문자열을 JSON 객체로 변환하는 가장 좋은 방법

WBOY
WBOY원래의
2016-05-16 16:54:461639검색

JS에서 JSON 문자열을 JSON 데이터 형식으로 구문 분석하는 방법에는 일반적으로 두 가지가 있습니다.
1. 하나는 eval() 함수를 사용하는 것입니다.
2. 함수 개체를 사용하여 반환 분석을 수행합니다.

첫 번째 파싱 방법: eval 함수를 사용하여 파싱하고, jQuery의 각 메서드를 사용하여 순회합니다.
jQuery를 사용하여 JSON 데이터를 파싱하며, jQuery 비동기 요청의 전송 개체로서 jQuery 요청 후 반환됩니다. 여기서 고려되는 것은 JSON 형식으로 서버에서 반환되는 문자열입니다. JSONObject와 같은 플러그인으로 캡슐화된 JSON 개체의 경우 프로세스가 유사하므로 여기서는 설명하지 않습니다.
여기서 먼저 JSON 문자열 세트가 제공됩니다. 문자열 세트는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다. :var data = " {
root:
[
{이름: '1', 값: '0'},
{이름: '6101', 값: 'Beijing'} ,
{이름: '6102', 값: 'Tianjin'},
{이름: '6103', 값: '상하이'},
{이름: '6104', 값 : '충칭시'},
{이름: '6105', 값: '웨이난시'},
{이름: '6106', 값: '옌안시'},
{이름 : '6107' , 값: '한중시'},
{이름: '6108', 값: '위린시'},
{이름: '6109', 값: '안강시'},
{name : '6110', value: 'Shangluo City'}
]
}
";

다음은 jQuery에서 비동기적으로 얻은 데이터 유형인 json 개체와 두 가지 방법으로 얻은 결과를 처리하는 방법을 각각 소개합니다.
1. 서버가 반환한 JSON 문자열의 경우 jQuery 비동기 요청이 유형을 지정하지 않거나 이를 문자열로 허용하는 경우 메서드를 객체화해야 합니다. 즉, put입니다. eval()의 문자열은 한 번 실행됩니다. 이 방법은 일반 JavaScript 방법으로 json 객체를 얻는 데에도 적합합니다. 다음 예는


코드 복사 코드는 다음과 같습니다. 다음: var dataObj = eval("(" data ")"); // json 객체로 변환
"("(" data ")를 추가해야 하는 이유 )");"를 평가할까요?
이유는 평가 자체의 문제입니다. json은 "{}"으로 시작하고 끝나기 때문에 JS에서는 명령문 블록으로 처리되므로 강제로 표현식으로 변환해야 합니다.
괄호를 추가하는 목적은 JavaScript 코드 처리 시 괄호 안의 표현식을 명령문으로 실행하는 대신 eval 함수가 객체로 변환하도록 강제하기 위한 것입니다. 예를 들어 객체 리터럴 {}을 사용하면 외부 대괄호가 추가되지 않으면 eval은 중괄호를 JavaScript 코드 블록의 시작 및 끝 표시로 인식하고 {}는 빈 문을 실행하는 것으로 간주됩니다. 따라서 다음 두 가지 실행 결과는 다릅니다.


alert( eval("{}"); // 정의되지 않은 반환
alert(eval("({})");// return object[Object]

JS에서 이 작성 방법의 경우 , 어디에서나 볼 수 있습니다.
예: (function(){})(); 클로저 작업 등을 수행할 때


코드 복사 <.> 코드는 다음과 같습니다. alert(dataObj.root.length);//루트의 하위 개체 수를 출력$.each(dataObj.root, fucntion(idx, item) {
if (idx == 0) {
return true;
}

//각 루트 하위 객체의 이름과 값을 출력합니다
Alert("name:" item.name ",value:" item.value);})



2. 서버에서 반환된 JSON 문자열의 경우 jQuery 비동기 요청이 유형(일반적으로 이 구성 속성)을 "json"으로 설정하거나 $.getJSON() 메서드를 사용하여 서버 반환을 얻는 경우 평가는 다음과 같습니다. () 메소드는 필요하지 않습니다. 이때 얻은 결과는 이미 json 객체이므로 해당 객체를 직접 호출하기만 하면 됩니다. 여기서는 데이터 처리 방법을 설명하기 위해 $.getJSON 메소드를 예로 사용합니다.




성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.