json 형식의 문자열이 json 대상으로 바뀌어 특수 문자 문제 해결

3880 단어 json
점심에 백스테이지에서 보낸 json을 할 때 대상으로 전환했지만 몇 개의 데이터가 계속 나오지 않았다. 검사 결과 json에 줄 바꾸기가 포함된 것을 발견했다. 이런 상황을 초래한 원인은 편집 부서에서 편집할 때 택시를 타고 되돌아와서 일어난 것일 수 있다.
만약 이런 json 형식의 문자열이 있다면
 1 var json={

 2   "school": [

 3     {

 4       "school_id": "007",

 5       "name": "           ",

 6       "position": "  ",

 7       "student_num": 40000,

 8       "desc": "      ,
" //
9 }, 10 { 11 "school_id": "009", 12 "name": " ", 13 "position": " ", 14 "student_num": 60000, 15 "desc": " ,
" 16 } 17 ] 18 }

 
만약 위의 json이string 형식이라면 지금object 형식으로 바꾸어 안의 값을 호출해야 합니다
보통 JSON을 사용합니다.parse(json);문자열을 대상으로 바꾸는 json;
var data=JSON.parse(json);

그런데 특수 문자가 생겨서 변환이 안 됐어요.
alert(typeof data);

Object가 반환되지 않았습니다.
 
다음에 json 문자열의 특수 문자를 제거한 다음 제거된 json 문자열을 대상 형식으로 바꾸는 함수를 작성해야 합니다
 
function json_obj(str){

  var pattern= new RegExp("[
]") ; //
var result=""; // for(var i=0;i<str.length;i++){ result=result+str.substr(i,1).replace(pattern,'');//
;
} return result; // json }

변환된 json 문자열을 대상 형식으로 변환
var data=json_obj(json);

alert(typeof data); //object

물론 이런 경우만 있는 것이 아니라 json이 어떤 특수 문자로 인한 오류인지 확인하고 정규 표현식에서 어떤 문자를 설정하는지 검사한다.

좋은 웹페이지 즐겨찾기