JS_javascript 기술에서 JSON을 구문 분석하기 위해 eval을 사용할 때 주의 사항 분석
이 기사에서는 JS에서 JSON을 구문 분석하기 위해 eval을 사용할 때의 주의 사항을 자세히 분석합니다. 참고하실 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.
JS에서 JSON 문자열을 JSON 데이터 형식으로 구문 분석하는 방법에는 일반적으로 두 가지가 있습니다.
1. 하나는 eval() 함수를 사용하는 것입니다.
2. 함수 개체를 사용하여 반환 분석을 수행합니다.
eval 함수를 사용하여 구문 분석하고 jquery의 각 메서드를 사용하여 순회합니다.
jquery를 사용하여 JSON 데이터를 구문 분석합니다. jquery 요청 후 반환되는 결과는 json 개체입니다. 여기서 고려되는 것은 플러그를 사용하여 서버에서 반환하는 문자열 형식입니다. - JSONObject와 같은 기능 JSON 객체도 이와 비슷하므로 여기서는 설명하지 않겠습니다.
여기서 먼저 JSON 문자열 세트가 제공됩니다. 문자열 세트는 다음과 같습니다.
코드는 다음과 같습니다.
var data=" { root: [ {name:'1',value:'0'}, {name:'6101',value:'北京市'}, {name:'6102',value:'天津市'}, {name:'6103',value:'上海市'}, {name:'6104',value:'重庆市'}, {name:'6105',value:'渭南市'}, {name:'6106',value:'延安市'}, {name:'6107',value:'汉中市'}, {name:'6108',value:'榆林市'}, {name:'6109',value:'安康市'}, {name:'6110',value:'商洛市'} ] }";
jquery에서 비동기적으로 얻은 데이터 유형인 json 개체와 문자열을 기반으로 두 가지 방법으로 얻은 결과를 처리하는 방법을 소개합니다.
1. 서버에서 반환된 JSON 문자열의 경우 jquery 비동기 요청에 유형 설명이 없거나 문자열로 허용되는 경우 메서드가 너무 번거롭지 않아야 합니다. eval()에 문자열을 넣으면 한 번 실행됩니다. 이 방법은 일반적인 javascipt를 사용하여 json 객체를 얻는 데에도 적합합니다. 다음은 예입니다.
var dataObj=eval("("+data+")");//转换为json对象 Red rose为什么要 eval这里要添加 “("("+data+")");//”呢?
이유는 평가 자체의 문제입니다. json은 "{}"으로 시작하고 끝나기 때문에 JS에서는 명령문 블록으로 처리되므로 강제로 표현식으로 변환해야 합니다.
괄호를 추가하는 목적은 JavaScript 코드 처리 시 괄호 안의 표현식을 명령문으로 실행하는 대신 eval 함수가 객체로 변환하도록 강제하기 위한 것입니다. 예를 들어 객체 리터럴 {}이 외부 대괄호와 함께 추가되지 않은 경우 eval은 중괄호를 JavaScript 코드 블록의 시작 및 끝 표시로 인식하고 {}는 빈 문을 실행하는 것으로 간주됩니다. 따라서 다음 두 가지 실행 결과는 다릅니다.
alert(eval("{}"); // return undefined alert(eval("({})");// return object[Object]
이런 글은 JS 어디에서나 볼 수 있습니다.
예: (function()) {}();
alert(dataObj.root.length);//输出root的子对象数量 $.each(dataObj.root,fucntion(idx,item){ if(idx==0){ return true; } //输出每个root子对象的名称和值 alert("name:"+item.name+",value:"+item.value); })
참고: 일반 js에서 json 객체를 생성하려면 $.each() 메서드를 for 문으로 바꾸기만 하면 되고 나머지는 변경되지 않습니다.
2. 서버에서 반환된 JSON 문자열의 경우 jquery 비동기 요청이 유형(일반적으로 이 구성 속성)을 "json"으로 설정하거나 $.getJSON() 메서드를 사용하여 서버 반환을 얻는 경우 이때 얻은 결과는 이미 json 개체이므로 eval() 메서드가 필요하지 않으며 개체를 직접 호출하기만 하면 됩니다. 여기서는 데이터 처리 방법을 설명하기 위해 $.getJSON 메서드를 예로 사용합니다.
$.getJSON("http://www.phpzixue.cn/",{param:"gaoyusi"},function(data){ //此处返回的data已经是json对象 //以下其他操作同第一种情况 $.each(data.root,function(idx,item){ if(idx==0){ return true;//同countinue,返回false同break } alert("name:"+item.name+",value:"+item.value); }); });
여기서 특별한 주의가 필요한 것은 방법 1의 eval() 메서드가 문자열(아마도 js 스크립트)을 동적으로 실행하므로 시스템 보안 문제가 쉽게 발생할 수 있다는 것입니다. 따라서 eval()을 우회하는 일부 타사 클라이언트 스크립트 라이브러리를 사용할 수 있습니다. 예를 들어 JavaScript의 JSON은 3k 이하의 스크립트 라이브러리를 제공합니다.
두 번째 구문 분석 방법은 Function 개체를 사용하는 것입니다. 일반적인 응용 프로그램은 JQUERY의 AJAX 메서드에서 성공과 같은 반환된 데이터를 구문 분석하는 것입니다.
var json='{"name":"CJ","age":18}'; data =(new Function("","return "+json))();
이때의 데이터는 파싱할 json 객체입니다.
이 기사가 JavaScript 프로그래밍에 종사하는 모든 사람에게 도움이 되기를 바랍니다.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











얼굴 검출 및 인식 기술은 이미 상대적으로 성숙하고 널리 사용되는 기술입니다. 현재 가장 널리 사용되는 인터넷 응용 언어는 JS입니다. 웹 프런트엔드에서 얼굴 감지 및 인식을 구현하는 것은 백엔드 얼굴 인식에 비해 장점과 단점이 있습니다. 장점에는 네트워크 상호 작용 및 실시간 인식이 줄어 사용자 대기 시간이 크게 단축되고 사용자 경험이 향상된다는 단점이 있습니다. 모델 크기에 따라 제한되고 정확도도 제한됩니다. js를 사용하여 웹에서 얼굴 인식을 구현하는 방법은 무엇입니까? 웹에서 얼굴 인식을 구현하려면 JavaScript, HTML, CSS, WebRTC 등 관련 프로그래밍 언어 및 기술에 익숙해야 합니다. 동시에 관련 컴퓨터 비전 및 인공지능 기술도 마스터해야 합니다. 웹 측면의 디자인으로 인해 주목할 가치가 있습니다.

Mingchao 테스트 중에는 정보 손실 및 비정상적인 게임 로그인을 방지하기 위해 시스템 업그레이드, 공장 초기화, 부품 교체를 피하시기 바랍니다. 특별 알림: 테스트 기간에는 이의 제기 채널이 없으므로 주의해서 처리하시기 바랍니다. Mingchao 테스트 중 주의 사항 소개: 시스템 업그레이드, 공장 설정 복원, 장비 구성 요소 교체 등을 수행하지 마십시오. 참고: 1. 정보 손실을 방지하려면 테스트 기간 동안 시스템을 주의 깊게 업그레이드하십시오. 2. 시스템이 업데이트될 경우 게임에 로그인할 수 없는 문제가 발생할 수 있습니다. 3. 이 단계에서는 아직 어필 채널이 열리지 않았습니다. 플레이어는 자신의 재량으로 업그레이드 여부를 선택하는 것이 좋습니다. 4. 동시에 하나의 게임 계정은 하나의 Android 기기와 하나의 PC에서만 사용할 수 있습니다. 5. 휴대폰 시스템을 업그레이드하거나 공장 설정으로 복원하거나 장치를 교체하기 전에는 테스트가 완료될 때까지 기다리는 것이 좋습니다.

PHP 배열을 JSON으로 변환하기 위한 성능 최적화 방법은 다음과 같습니다. JSON 확장 및 json_encode() 함수를 사용하여 문자 이스케이프를 방지하고 버퍼를 사용하여 JSON 인코딩 결과 캐싱을 고려합니다. JSON 인코딩 라이브러리.

단편 동영상 플랫폼의 등장으로 Douyin은 많은 사람들의 일상생활에서 없어서는 안 될 부분이 되었습니다. Douyin을 통한 라이브 방송과 팬들과의 소통은 많은 사용자들의 꿈입니다. 그렇다면 처음으로 Douyin에서 라이브 방송을 시작하는 방법은 무엇입니까? 1. Douyin에서 처음으로 라이브 방송을 시작하는 방법은 무엇입니까? 1. 준비 생방송을 시작하려면 먼저 Douyin 계정이 실명 인증을 완료했는지 확인해야 합니다. Douyin 앱의 "나" -> "설정" -> "계정 및 보안"에서 실명인증 튜토리얼을 확인하실 수 있습니다. 실명인증을 완료하신 후, 라이브 방송 조건을 충족하시면 Douyin 플랫폼에서 라이브 방송을 시작하실 수 있습니다. 2. 생방송 허가 신청 생방송 조건을 충족한 후 생방송 허가를 신청해야 합니다. Douyin 앱을 열고 "나"->"크리에이터 센터"->"직접"을 클릭하세요.

[PHP 중간점의 의미와 사용법 분석] PHP에서 중간점(.)은 두 개의 문자열이나 객체의 속성이나 메소드를 연결하는 데 사용되는 일반적으로 사용되는 연산자입니다. 이 기사에서는 구체적인 코드 예제를 통해 PHP에서 중간점의 의미와 사용법을 자세히 살펴보겠습니다. 1. 문자열 중간점 연산자 연결 PHP에서 가장 일반적인 사용법은 두 문자열을 연결하는 것입니다. 두 문자열 사이에 .을 배치하면 두 문자열을 이어붙여 새 문자열을 만들 수 있습니다. $string1=&qu

Jackson 라이브러리의 주석은 JSON 직렬화 및 역직렬화를 제어합니다. 직렬화: @JsonIgnore: 속성 무시 @JsonProperty: 이름 지정 @JsonGetter: get 메서드 사용 @JsonSetter: set 메서드 사용 역직렬화: @JsonIgnoreProperties: @JsonProperty 속성 무시: 이름 지정 @JsonCreator: 생성자 사용 @JsonDeserialize: 사용자 정의 논리

Win11의 새로운 기능 분석: Microsoft 계정 로그인을 건너뛰는 방법 Windows 11이 출시되면서 많은 사용자는 Windows 11이 더 편리하고 새로운 기능을 제공한다는 사실을 알게 되었습니다. 그러나 일부 사용자는 시스템을 Microsoft 계정에 연결하는 것을 좋아하지 않아 이 단계를 건너뛰기를 원할 수도 있습니다. 이 문서에서는 사용자가 Windows 11에서 Microsoft 계정 로그인을 건너뛰고 보다 개인적이고 자율적인 환경을 달성하는 데 도움이 되는 몇 가지 방법을 소개합니다. 먼저 일부 사용자가 Microsoft 계정에 로그인하기를 꺼리는 이유를 이해해 보겠습니다. 한편으로는 일부 사용자들은 다음과 같은 걱정을 합니다.

js와 vue의 관계: 1. 웹 개발의 초석인 JS 2. 프론트엔드 프레임워크로서의 Vue.js의 등장 3. JS와 Vue의 상호 보완적인 관계 4. JS와 Vue의 실제 적용 Vue.
