>  기사  >  웹 프론트엔드  >  JavaScript_javascript 기술에서 문자열을 json으로 변환하는 2가지 방법

JavaScript_javascript 기술에서 문자열을 json으로 변환하는 2가지 방법

WBOY
WBOY원래의
2016-05-16 15:53:031188검색

첫 번째 방법:

js 함수 eval() 사용;

testJson=eval(testJson);은 잘못된 변환 방법입니다.

올바른 변환 방법에는 ()를 추가해야 합니다: testJson = eval("(" testJson ")");

eval()은 매우 빠르지만 모든 JavaScript 프로그램을 컴파일하고 실행할 수 있으므로 보안 문제가 있습니다. 평가()를 사용합니다. 출처는 신뢰할 수 있어야 합니다. 보다 안전한 json 파서를 사용해야 합니다. 서버가 json을 엄격하게 인코딩하지 않거나 입력이 엄격하게 검증되지 않는 경우 잘못된 json을 제공하거나 위험한 스크립트가 포함되어 eval()에서 스크립트를 실행하고 악성 코드를 릴리스할 수 있습니다.

js 코드:

코드 복사 코드는 다음과 같습니다.

함수 ConvertToJsonForJs() {
//var testJson = "{ 이름: 'Xiaoqiang', 나이: 16 }" (지원됨)
//var testJson = "{ 'name': 'Xiaoqiang', 'age': 16 }" (지원됨)
              var testJson = '{ "name": "Xiaoqiang", "age": 16 }';
​​​​​​ //testJson=eval(testJson);//잘못된 변환 방법
             testJson = eval("(" testJson ")");
경고(testJson.name);
}

두 번째 방법은 jquery.parseJSON() 메서드를 사용하는데, 이는 json 형식에 대한 요구 사항이 더 높고 json 형식을 준수해야 합니다.

jquery.parseJSON()

js:코드

코드 복사 코드는 다음과 같습니다.

함수 ConvertToJsonForJq() {
              var testJson = '{ "name": "Xiaoqiang", "age": 16 }';
                    // 모르겠다
​​​​​​ //'{ 이름: "Xiaoqiang", 나이: 16 }' (이름은 큰따옴표로 묶지 않음)
//"{ 'name': "Xiaoqiang", 'age': 16 }" (이름은 작은따옴표를 사용함)
              testJson = $.parseJSON(testJson);
경고(testJson.name);
}

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