에드
146
2019-07-03 10:52:54 작성 2019-07-03 10:53:17 수정됨
6
286

자바스크립트에서 JSON.parse를 사용해서 제이슨을 사용하려는데, 안에 들어있는 따옴표(') 때문에 값을 불러올수가 없네요.


자바스크립트에서 JSON.parse를 사용해서 제이슨을 사용하려는데, 안에 들어있는 따옴표(') 때문에 값을 불러올수가 없네요.


컨트롤러에서 제이슨을 던져줍니다.

*Controller.java

ModelAndView view = new ModelAndView();

view.addObject("jsonList", json);


*.jsp


<script>

var obj = JSON.parse('${json}');

</script>

디비에서 긁어오는 데이터인데, 만약 
{ "name":"John", "age":30, "error":"Nothing"} 이런식으로, 일반적인 글자나 숫자로 되어 있다면 정상적으로 잘 작동하네요.

근데 문제는
{ "name":"John", "age":30, "error":"<a href='javascript:;'>Hello world!</a>"} 

간혹 테그가 들어있는 값들이 존재하더군요.
이런경우는, 자바스크립트에서 파싱할때 에러가 발생하네요.
컨트롤러에서 화면으로 던져줄때, replace 해야 할까요? 아니면, jsp 화면에서 replace 시켜줘야할까요? 따옴표를 \' 이런식으로 해주면 화면에 출력되긴 했었는데, 어떤식으로 해줘야할지 모르겠네요. 펑션 중에 따옴표나 기호 걱정없이 사용할수 있는 방법이 없을까요?

0
0
  • 답변 6

  • 시닙이
    699
    2019-07-03 11:03:45

    ES6 템플릿 문자열 알아보세용

    1
  • 에드
    146
    2019-07-03 11:23:40

    시닙이

    ES6 쪽은 전혀 문외한인데,,, 한번 찾아봐야겠네요. 감사합니다.

    0
  • oneday
    486
    2019-07-03 12:34:42

    넘겨줄때 어차피 문자열일텐데 이스케이프해서 넘겨주면

    자바스크립트에서 그냥 파싱되지 않나요?

    1
  • 에드
    146
    2019-07-04 04:36:41

    oneday  

    안되더라구요.. 자바스크립트에서 제이슨 파싱하는 순간 에러가 뜨네요..


    시닙이

    일단 var 말고 let 으로 받아서 쓰니 소스코드에 빨간줄은 뜨는데, 크롬에서 잘작동되네요. 감사합니다.

    0
  • 시닙이
    699
    2019-07-04 09:52:05
    이번 기회에 ES6 해보시면 좋을것 같습니다 ㅎㅎ 
    1
  • 에드
    146
    2019-07-04 22:37:36

    시닙이

    모르는 것들이 아주 많았네요...

    ES6 아주 간편하게 쓸수 있는거같아요. 답변 감사합니다 ^^

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.