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

JavaScript에서 문자열을 json으로 변환하는 방법

coldplay.xixi
coldplay.xixi원래의
2021-04-02 11:31:557498검색

JavaScript에서 문자열을 json으로 변환하는 방법: 1. js 함수 [eval();]를 사용하고, 코드는 [testJson = eval("(" + testJson + ")")]입니다. 2. [jquery .parseJSON ()] 방법.

JavaScript에서 문자열을 json으로 변환하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, DELL G3 컴퓨터.

JavaScript에서 문자열을 json으로 변환하는 방법:

첫 번째 방법:

js 함수 eval() 사용;

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

올바른 변환 방법을 사용하려면 ()를 추가해야 합니다. testJson = eval("(" + testJson + ")");(): testJson = eval("(" + testJson + ")");

eval()的速度非常快,但是他可以编译以及执行任何javaScript程序,所以会存在安全问题。在使用eval()。来源必须是值得信赖的。需要使用更安全的json解析器。在服务器不严格的编码在json或者如果不严格验证的输入,就有可能提供无效的json或者载有危险的脚本,在eval()中执行脚本,释放恶意代码。

js代码:

代码如下:

  function ConvertToJsonForJs() {
            //var testJson = "{ name: '小强', age: 16 }";(支持)
            //var testJson = "{ 'name': '小强', 'age': 16 }";(支持)
            var testJson = '{ "name": "小强", "age": 16 }';
            //testJson=eval(testJson);//错误的转换方式
            testJson = eval("(" + testJson + ")");
            alert(testJson.name);
        }

第二种方式使用jquery.parseJSON()方法对json的格式要求比较高,必须符合json格式

jquery.parseJSON()

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

js 코드:

코드는 다음과 같습니다.

  function ConvertToJsonForJq() {
            var testJson = '{ "name": "小强", "age": 16 }';
            //不知道
            //'{ name: "小强", age: 16 }' (name 没有使用双引号包裹)
            //"{ 'name': "小强", 'age': 16 }"(name使用单引号)
            testJson = $.parseJSON(testJson);
            alert(testJson.name);
        }

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

jquery를 준수해야 합니다. parseJSON()

js: Code
🎜🎜코드는 다음과 같습니다:🎜rrreee🎜🎜관련 무료 학습 권장 사항: 🎜javascript🎜(동영상)🎜🎜

위 내용은 JavaScript에서 문자열을 json으로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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