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 중국어 웹사이트의 기타 관련 기사를 참조하세요!