문자열을 객체 배열 자바스크립트로 변환

王林
풀어 주다: 2023-05-12 19:51:36
원래의
3202명이 탐색했습니다.

JavaScript에서 문자열과 객체는 서로 다른 두 가지 유형이며 저장하는 데이터도 매우 다릅니다. 웹 개발에서 우리는 문자열을 서버에서 얻은 JSON 데이터와 같은 객체 배열로 변환해야 하는 상황에 자주 직면합니다. 이 기사에서는 문자열을 객체 배열로 변환하는 여러 가지 방법을 소개합니다.

방법 1: JSON.parse() 사용

JavaScript에서는 JSON.parse() 메서드를 사용하여 JSON 형식의 문자열을 객체 또는 배열로 변환할 수 있습니다. JSON.parse() 메서드의 원리는 JSON 문자열을 JavaScript 개체 또는 배열로 구문 분석하는 것입니다.

예를 들어 다음 JSON 문자열이 있습니다.

var jsonString = '[{"name":"John","age":30,"city":"New York"},{"name":"Jane","age":25,"city":"Los Angeles"},{"name":"Bob","age":40,"city":"Chicago"}]';
로그인 후 복사
로그인 후 복사
로그인 후 복사

JSON.parse() 메서드를 사용하여 이를 객체 배열로 변환합니다.

var jsonObjectArray = JSON.parse(jsonString);
로그인 후 복사

루프 문을 사용하여 배열을 반복하고 속성을 출력할 수 있습니다.

for(var i=0; i<jsonObjectArray.length; i++){
    console.log("Name: "+jsonObjectArray[i].name+", Age: "+jsonObjectArray[i].age+", City: "+jsonObjectArray[i].city);
}
로그인 후 복사
로그인 후 복사
로그인 후 복사

방법 2: eval() 사용

eval()은 들어오는 문자열 매개 변수를 JavaScript 코드로 실행할 수 있는 JavaScript의 함수입니다. 따라서 eval() 함수를 사용하여 JSON 형식의 문자열을 객체나 배열로 변환할 수 있습니다.

예를 들어 다음 JSON 문자열이 있습니다.

var jsonString = '[{"name":"John","age":30,"city":"New York"},{"name":"Jane","age":25,"city":"Los Angeles"},{"name":"Bob","age":40,"city":"Chicago"}]';
로그인 후 복사
로그인 후 복사
로그인 후 복사

eval() 함수를 사용하여 이를 객체 배열로 변환합니다.

var jsonObjectArray = eval("("+jsonString+")");
로그인 후 복사

마찬가지로 루프 문을 사용하여 배열을 반복하고 속성을 출력할 수 있습니다.

for(var i=0; i<jsonObjectArray.length; i++){
    console.log("Name: "+jsonObjectArray[i].name+", Age: "+jsonObjectArray[i].age+", City: "+jsonObjectArray[i].city);
}
로그인 후 복사
로그인 후 복사
로그인 후 복사

eval() 함수는 보안 위험이 있을 수 있으므로 프로덕션 환경에서는 사용하지 않는 것이 좋습니다. 대신 JSON.parse() 메서드를 사용해야 합니다.

방법 3: 문자열 분할 및 바꾸기 사용

이전 방법은 문자열 분할 및 바꾸기를 사용하여 문자열을 객체 배열로 변환하는 것입니다.

예를 들어 다음과 같은 JSON 문자열이 있습니다.

var jsonString = '[{"name":"John","age":30,"city":"New York"},{"name":"Jane","age":25,"city":"Los Angeles"},{"name":"Bob","age":40,"city":"Chicago"}]';
로그인 후 복사
로그인 후 복사
로그인 후 복사

먼저 문자열에서 개체를 구분하는 데 사용되는 쉼표를 세미콜론으로 바꾸고 중괄호를 대괄호로 바꾸어 합법적인 JavaScript 배열 선언을 얻어야 합니다.

jsonString = jsonString.replace(/}/g, '},');
jsonString = jsonString.replace(/,$/, '');
jsonString = jsonString.replace(/{/g, '[');
jsonString = jsonString.replace(/}/g, '}]');
로그인 후 복사

그런 다음 , eval() 함수를 사용하여 객체 배열로 변환합니다:

var jsonObjectArray = eval(jsonString);
로그인 후 복사

마찬가지로 루프 문을 사용하여 배열을 순회하고 각 객체의 속성을 출력할 수 있습니다:

for(var i=0; i<jsonObjectArray.length; i++){
    console.log("Name: "+jsonObjectArray[i].name+", Age: "+jsonObjectArray[i].age+", City: "+jsonObjectArray[i].city);
}
로그인 후 복사
로그인 후 복사
로그인 후 복사

이 방법은 오직 작동합니다. JSON 형식이 상대적으로 단순한 경우 이 방법은 깊게 중첩된 JSON 형식에는 효과적이지 않습니다.

요약

위는 문자열을 객체 배열로 변환하는 여러 가지 방법입니다. 실제 개발에서는 JSON 형식의 문자열을 객체나 배열로 변환하기 위해 JSON.parse() 메서드를 사용하는 것이 좋습니다. 이는 매우 효율적이고 안전하며 언어 자체의 사양에 더 부합합니다. 이전 브라우저 버전을 지원해야 하는 경우 eval() 함수 사용이나 문자열 분할 및 교체를 고려하세요.

위 내용은 문자열을 객체 배열 자바스크립트로 변환의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿