Javascript/[중요] Javascript

Javascript로 일반 문자열을 배열로 파싱, 변환

마샤와 곰 2019. 4. 27. 22:46

 

 

서버에서 데이터를 받은 경우에..헤더나 네트워크문제로 해당 데이터가 객체가 아니라 일반 문자열로 들어오는 경우가 있다.

또는 콤마, json형식처럼 보이는 문자열을 가져와서 파싱만 해주면 반복문으로 사용하면 참 편리한데 이걸 일일이 split하거나 사용자 정의의 파싱메소드를 만들기에는 참 귀찮은 일이지 않을 수 없다.

이럴때는 아래 소스코드를 활용하면 쉽게 배열형태의 객체로 파싱이 가능하다.

var string = "0,1,2,3,4,5";  //콤마로된 문자열
var objectstring = '{Name:"김이사", number:12345}';  //json형태의 문자열

var stringToArray = (new Function("return [" + string+ "];")());
var objectStringToArray = (new Function("return [" + objectstring+ "];")());

데이터를 Json형태로 파싱하는 방법중에는..JSON.parse 라는 기능이 존재하는데..

JSON.parse해서 일반 문자열을 파싱하는 경우 오류가 나는경우가 꽤나 존재한다.

그 이유는..JSON.parse는 여분의 콤마를 허용하지 않고, 속성은 반드시 쌍따옴표로 표현해야된다는 규칙이 존재한다. 조금 엄격하다고 볼 수 있다.

* 출처

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Errors/JSON_bad_parse

split이나 사용자가 규칙이나 패턴을 정의해서 만들어 써도 되지만, 위 방법만 알고있으면 쉽게 파싱이 가능하다.

반응형