[javascript] JSON.stringify와 JSON.parse의 차이점

이 두 가지 파싱 방법을 사용할 때 혼란 스럽습니다.

json_encoded 데이터를 에코하고 ajax를 통해 다시 검색 한 후 JSON.stringifyJSON.parse를 사용해야하는 시점에 대해 종종 혼란스러워합니다 .

구문 분석 할 때 console.log[object,object] 에, 문자열 화 할 때 JavaScript 객체를 얻 습니다 .

$.ajax({
url: "demo_test.txt",
success: function(data) {
         console.log(JSON.stringify(data))
                     /* OR */
         console.log(JSON.parse(data))
        //this is what I am unsure about?
    }
});



답변

JSON.stringify JavaScript 객체를 JSON 텍스트로 바꾸고 해당 JSON 텍스트를 문자열에 저장합니다. 예 :

var my_object = { key_1: "some text", key_2: true, key_3: 5 };

var object_as_string = JSON.stringify(my_object);  
// "{"key_1":"some text","key_2":true,"key_3":5}"  

typeof(object_as_string);  
// "string"  

JSON.parse JSON 텍스트 문자열을 JavaScript 객체로 변환합니다. 예 :

var object_as_string_as_object = JSON.parse(object_as_string);  
// {key_1: "some text", key_2: true, key_3: 5} 

typeof(object_as_string_as_object);  
// "object" 


답변

JSON.parse()JSON으로받은 것을 “구문 분석”하기위한 것입니다.
JSON.stringify()객체 / 배열에서 JSON 문자열을 만드는 것입니다.


답변

그들은 서로의 역수입니다. JSON.stringify()JS 객체를 JSON.parse()JSON 문자열로 직렬화하지만 JSON 문자열을 JS 객체로 직렬화 해제합니다.


답변

그들은 서로 반대입니다.

JSON.stringify ()

JSON.stringify ()는 JS 객체 또는 값을 JSON 문자열로 직렬화합니다.

JSON.stringify({});                  // '{}'
JSON.stringify(true);                // 'true'
JSON.stringify('foo');               // '"foo"'
JSON.stringify([1, 'false', false]); // '[1,"false",false]'
JSON.stringify({ x: 5 });            // '{"x":5}'

JSON.stringify(new Date(2006, 0, 2, 15, 4, 5))
// '"2006-01-02T15:04:05.000Z"'

JSON.stringify({ x: 5, y: 6 });
// '{"x":5,"y":6}' or '{"y":6,"x":5}'
JSON.stringify([new Number(1), new String('false'), new Boolean(false)]);
// '[1,"false",false]'

JSON.parse ()

JSON.parse () 메소드는 문자열을 JSON으로 구문 분석하여 선택적으로 생성 된 값을 변환합니다.

JSON.parse('{}');              // {}
JSON.parse('true');            // true
JSON.parse('"foo"');           // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse('null');            // null


답변

먼저, JSON.stringify()함수는 JavaScript 값을 JSON (JavaScript Object Notation) 문자열로 변환합니다. JSON.parse()함수는 JSON (JavaScript Object Notation) 문자열을 객체로 변환합니다. 이 두 기능에 대한 자세한 내용은 다음 링크를 참조하십시오.

https://msdn.microsoft.com/library/cc836459(v=vs.94).aspx
https://msdn.microsoft.com/library/cc836466(v=vs.94).aspx

둘째, 다음 샘플은이 두 기능을 이해하는 데 도움이됩니다.

<form id="form1" runat="server">
    <div>
        <div id="result"></div>
    </div>
</form>

<script>
    $(function () {
        //define a json object
        var employee = { "name": "John Johnson", "street": "Oslo West 16", "phone": "555 1234567" };

        //use JSON.stringify to convert it to json string
        var jsonstring = JSON.stringify(employee);
        $("#result").append('<p>json string: ' + jsonstring + '</p>');

        //convert json string to json object using JSON.parse function
        var jsonobject = JSON.parse(jsonstring);
        var info = '<ul><li>Name:' + jsonobject.name + '</li><li>Street:' + jsonobject.street + '</li><li>Phone:' + jsonobject.phone + '</li></ul>';

        $("#result").append('<p>json object:</p>');
        $("#result").append(info);
    });
</script>


답변

var log = { "page": window.location.href,
        "item": "item",
        "action": "action" };

log = JSON.stringify(log);
console.log(log);
console.log(JSON.parse(log));

// 출력은 다음과 같습니다.

// 첫 번째 콘솔은 다음과 같은 문자열입니다.

'{ "page": window.location.href,"item": "item","action": "action" }'

// 두 번째 콘솔의 경우 다음과 같은 개체입니다.

Object {
page   : window.location.href,
item   : "item",
action : "action" }


답변

JSON.stringify() 객체를 문자열로 변환합니다.

JSON.parse() JSON 문자열을 객체로 변환합니다.