JS 구현 JSON 형식 문자열 회전

  아래에 요약 된 바와 같이, 브라우저 전단, 다양한 방법을 달성 차례로 JSON 형식 문자열 :

  • 1. 방법 JS 기능 평가 ()  

구문 :

VAR OBJ = 평가 ( "("+ TXT +은 ")");   //이 구문 오류를 방지하기 위해, 본문에 괄호로 묶어야합니다

평가 ()가 정의된다 평가 () 함수는 문자열을 계산하고, 자바 스크립트 코드를 실행한다.

JSON 구문 스크립트 구문 자바 스크립트 함수 평가의 서브 세트 ()가 자바 스크립트 객체 JSON 텍스트로 변환 할 수있다.

참고 : 문자열이 식을 포함하는 경우, 평가 () 함수는 컴파일 및 실행됩니다, 변환이 보안 문제가 될 것입니다.

참조 : JSON 사용 | 초보자 튜토리얼 , 자바 스크립트 평가 () 함수

 

  • 2. 방법 브라우저 객체 JSON 함께 제공, JSON.parse ()  

구문 :

JSON.parse (텍스트 [, 자극성])
 // 텍스트 : 필수 유효한 JSON 문자열입니다. 전 해상도 그렇지 않으면 오류를 해결합니다, 데이터 표준 JSON 형식인지 확인합니다. 
// 자극성 : 변환의 결과는,이 함수는 각각의 멤버 객체 호출 선택 기능.

JSON.parse () () 평가보다 안전하고 빠르게 . 지원 주요 브라우저 : 파이어 폭스 3.5, IE 8, 크롬 , 오페라 10, 사파리 4.

참고 : IE8 호환성 모드, IE 7, IE 6, 호환성 문제가있을 것입니다.

해결 방법 : 도입json2.js(JSON 공식 웹 사이트)

<! - [ 경우 LTE IE 7]> 
<스크립트 SRC = "json2.js"> </ script>     
<[ENDIF] -!>

키 소스 분석을 json2.js :

// 페어링 과정은 네 단계로 나누어진다. 
// 첫 번째 단계는 이스케이프 문자로 유니 코드 문자를 대체하는 것입니다. 
// JS 여러 문자를 처리하는 문제에있을 때,하지 조용히 심지어 줄 끝으로, 삭제합니다. 
            = 텍스트 스트링 (텍스트) 
            cx.lastIndex = 0 ;
             IF (cx.test (텍스트)) { 
                텍스트 = text.replace (CX, 기능 (A) {
                      '\\ U'+ 
                        ( 0000 + A. . (16)) 슬라이스 (-4 charCodeAt (0)로 .toString ) 
                ;}) 
            } 
            
// 다음 두 번째 단계 : 
// 에서 무대 두 번째, 우리는 정규 표현식 모습이라는 텍스트에 대해 실행 
//비 JSON의 패턴. 우리는 특히 우려 '()'와 '새로운' 
// 그들이 호출을 야기 할 수 있기 때문에 '='는 돌연변이가 발생할 수 있기 때문이다. 
// 그러나 안전을 위해, 우리는 예상치 못한 형태를 거부합니다. 
 
// 우리는 약 작동하기 위해 4 개 정규 표현식 운영에 두 번째 단계를 분할 
// IE의 사파리의 정규 표현식 엔진에 타격 비 효율성을. 먼저 우리는 
// 와 JSON 백 슬래시 쌍을 대체 할 '@'(비 JSON 문자). 둘째, 우리는 
// ']'문자가 포함 된 모든 단순 값 토큰을 대체합니다. 셋째, 우리 모두 삭제 
// 콜론 또는 쉼표 또는 텍스트를 시작에 따라 개방 브래킷. 마지막으로, 
//그에 모습 ']'오직 공백 문자 또는이다 우리는 남은 참조하거나 
// ','또는 ':'를하는 경우가 SO 즉 '{'또는 '}'.. 또는, 다음 평가를위한 텍스트 안전 
 
            IF / ( ^ [\], : {} \의 S * $ / 
                    .test (text.replace ( / \\ (: [ "\\\ / bfnrt] | U [0-9A-FA-F] {4}) / G '@' ) 
                        .replace ( /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE ??] + \ -] \ D +) / G '] ) 
                        .replace ( ?? / (^ | : | () : \ S * \ [) + / G' ' ))) { 
 
// 세번째 단계 : 평가 명령 호출 
//는 블록이거나 객체 리터럴 수 '{'는 JS 구문 모호성을 갖는 경향이있다. 그래서 우리는 여기에서 모호성 방지하기 위해 괄호를 사용                 
                J = 평가를 ( '('+ 텍스트 + '
json2.js 키 소스

참조 : JSON.parse () | 루키 튜토리얼 , 개요 (개별 학습) json2.js - 새 열을 투쟁

 

  • 3. JQuery와 참조 플러그인, $ .parseJSON ()  

구문 :

.parseJSON $ (JSON은)   // JSON : 문자열 유형, 수신 잘못된 JSON 문자열은 이상이 발생할 수 있습니다

$ .ParseJSON () 키 소스 분석 :

// 제 네이티브 JSON 파서를 사용하여 분석을 시도 
하는 경우 (window.JSON && window.JSON.parse) {
       반환 window.JSON.parse (데이터); 
 } 

// 들어오는 데이터가 실제 JSON되어 있는지 확인 
// 논리가 http://json.org/json2.js에서 빌린 
경우 , (rvalidchars.test (data.replace (rvalidescape을 "@" ) 
     .replace (rvalidtokens, "] " ) 
     .replace은 (rvalidbraces가 '' ))) {
         반환 ( 새로운 함수 (+"리턴 " 데이터)) (); 
}
$ .ParseJSON () 키 소스

참조 : jQuery.parseJSON () 메소드 | 초보자 튜토리얼 , jQuery를 정적 메소드 parseJSON 방법 및 소스 코드 분석 - - 양 영

 

  • 4.   때 요청 AJAX JSON 데이터 수집, $ . 해서 getJSON () 

구문 :

jQuery.getJSON (URL, 데이터, 성공 (데이터, 상태, XHR))
 // URL이 필요합니다. 요청 URL이 전송있는 규정. 
// 데이터 선택 사항. 요청과 함께 서버로 전송 소정 데이터입니다. 
// 성공 (데이터, 상태, XHR) 옵션. 요청이 성공하면 기능 작업을 정의.

데이터가 JSON 객체 반환 된이 시간, 당신은 변환 할 필요가 없습니다.

$ . 해서 getJSON ()는 속기 아약스 기능과 동일하다 :

$ 아약스 ({ 
  URL : URL, 
  데이터 : 데이터 
  성공 : 콜백, 
  dataType와 "JSON" 
});

참조 : JQuery와 아약스 -해서 getJSON () 메소드

 

 요약 :

1. 권장 하며 JSON.parse () 메소드를 호환 IE7 / 6 필요한 경우 json2.js 파일을 재 도입. 에 해당하는 JSON.stringify () 메소드하는 문자열을 JSON 객체를 변환 할 수 있습니다.

2. 페이지가 이미 jQuery를 인용하는 경우, 불필요한 파일 (json2.js)을 소개하고 싶지 않아, 당신은 $ 사용할 수 있습니다 .parseJSON () 메소드를.

() 평가 후면을 사용하는 경우 3. 문자열은 실행 가능 코드가없는 주목해야한다.

4. 데이터 $ 직접, AJAX JSON가 얻어지면 . 에서 데이터 유형의 $ 아약스에서해서 getJSON () 함수, 또는 추가 파라미터 () "JSON은"직접 JSON 개체를 얻을 수있다.

 

 

참조 : 노트의 네 가지 방법으로 JS JSON 문자열 - 천사 울 - 블로그 공원

추천

출처www.cnblogs.com/coolxiaoyi/p/11251765.html