관리 메뉴

웹개발자의 기지개

JSON.parse , JSON.stringify 본문

javascript

JSON.parse , JSON.stringify

http://portfolio.wonpaper.net 2018. 11. 26. 04:19

  JSON.parse()
  parse 메소드는 string 객체를 json 객체로 변환시켜줍니다.
 
  JSON.stringify
  stringify 메소드는 json 객체를 String 형태로 변환시켜 줍니다.
 
  var objData = {
  Name: "Hello",
  Age: "20"
  }
 
  var stringPerson = JSON.stringify(objData);
  var objPerson = JSON.parse(stringPerson);
 
  document.write(stringPerson);
  // Output: "{"Name":"Hello","Age":"20"}"
 
  document.write(objPerson.Name);
  // Output: "Hello"
 
  var Person = new Object();
  Person.name = "홍길동";
  Person.age = "25";
 
  var jsonString = JSON.stringify(Person);
  var jsonParse = JSON.parse(jsonString);
 
  console.log(jsonString);
 
  → {"name":"홍길동","age":"25"}
 
  console.log(jsonParse);
 
  → Object {name: "홍길동", age: "25"}


  
  ※ 단, JSON.stringify( )를 통하여 문자열로 변환 한 뒤 input태그에 담아 Form Submit을 하면 XSS방지를 위하여 특수문자 변환이 이뤄진다. 
  
  
  → {"name":"홍길동","age":"25"}
 
 
  그렇기 때문에 .replace( ) 작업을 통하여 완전한 JSON String형태로 변환을 해준다.
 
 
  console.log(jsonString.replace(/"/g, '"'));
 
  → {"name":"홍길동","age":"25"}

 

 

 

     var json_data_string = JSON.stringify(json_data).replace(/\\n/g, "\\n")
             .replace(/\\'/g, "
\\'")
             .replace(/\\"/g, '\\"')
             .replace(/\\&/g, "\\&")
             .replace(/\\r/g, "
\\r")
             .replace(/\\t/g, "
\\t")
             .replace(/\\b/g, "
\\b")
             .replace(/\\f/g, "
\\f");

Comments