JSON.stringify와 JSON.parse의 차이점
이 두 가지 파싱 방법을 사용할 때 혼란 스럽습니다.
json_encoded 데이터를 에코하고 ajax를 통해 다시 검색 한 후 JSON.stringify 및 JSON.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 문자열을 객체로 변환합니다.
여기서 실제 혼란은 구문 분석 대 문자열 화가 data
아니라 성공 콜백 매개 변수의 데이터 유형에 관한 것 입니다.
data
문서에 따라 원시 응답, 즉 문자열이거나 JavaScript 객체 일 수 있습니다.
성공
유형 : Function (Anything data, String textStatus, jqXHR jqXHR) 요청이 성공하면 호출 할 함수입니다. 이 함수에는 세 가지 인수가 전달됩니다. 서버에서 리턴 된 데이터 (dataType 매개 변수 또는 dataFilter 콜백 함수 (지정된 경우)에 따라 형식화 됨)
그리고 dataType의 기본값은 '지능형 추측'설정입니다.
dataType (기본값 : Intelligent Guess (xml, json, 스크립트 또는 html))
유형 : 문자열 서버에서 다시 예상되는 데이터 유형입니다. 아무것도 지정하지 않으면 jQuery는 응답의 MIME 유형을 기반으로 유추하려고 시도합니다 (XML MIME 유형은 XML을 생성하고 1.4에서 JSON은 JavaScript 객체를 생성하고 1.4 스크립트에서 스크립트를 실행하며 그 밖의 모든 것은 문자열로 반환).
JavaScript 객체 <-> JSON 문자열
JSON.stringify() <-> JSON.parse()
JSON.stringify (obj)-직렬화 가능한 객체를 가져와 JSON 표현을 문자열로 반환합니다.
JSON.stringify() -> Object To String.
JSON.parse (string)-잘 구성된 JSON 문자열을 가져와 해당 JavaScript 객체를 반환합니다.
JSON.parse() -> String To Object.
설명 : JSON.stringify (obj [, replacer [, space]]);
Replacer / Space-옵션 또는 정수 값을 취하거나 interger 유형 반환 함수를 호출 할 수 있습니다.
function replacer(key, value) {
if (typeof value === 'number' && !isFinite(value)) {
return String(value);
}
return value;
}
- Replacer Just finite가 아닌 no를 null로 바꾸는 데 사용하십시오.
- 공간별로 Json String을 들여 쓰기위한 공간 사용
그들은 서로 완전히 반대입니다.
JSON.parse()
JSON 으로 수신 된 데이터 를 구문 분석 하는 데 사용됩니다 . 그것은 직렬화 복원 JSON 문자열 에 자바 스크립트 객체를 .
JSON.stringify()
반면 에 객체 또는 배열 에서 JSON 문자열 을 만드는 데 사용됩니다 . 그것은 직렬화 자바 스크립트 객체 에 JSON 문자열을 .
그것이 언급되었는지는 모르겠지만 JSON.parse (JSON.stringify (myObject))의 사용 중 하나는 원래 객체의 복제본을 만드는 것입니다.
원본 객체에 영향을주지 않고 일부 데이터를 망칠 때 유용합니다. 아마도 가장 깨끗하고 빠른 방법은 아니지만 매우 복잡하지 않은 객체의 경우 가장 간단합니다.
JSON.stringify(obj [, replacer [, space]])
-직렬화 가능한 객체를 가져와 JSON 표현을 문자열로 반환합니다.
JSON.parse(string)
-잘 구성된 JSON 문자열을 가져와 해당 JavaScript 객체를 반환합니다.
그들은 서로 반대하고 있습니다. JSON.Stringify()
JSON을 문자열로 변환 JSON.Parse()
하고 문자열을 JSON으로 구문 분석합니다.
JSON : 주로 서버와 데이터를주고받는 데 사용됩니다. JSON 객체를 서버로 보내기 전에 문자열이어야합니다.
JSON.stringify() //Converts the JSON object into the string representation.
var jsonData={"Name":"ABC","Dept":"Software"};// It is a JSON object
var jsonString=JSON.stringify(jsonData);// It is a string representation of the object
// jsonString === '{"Name":"ABC","Dept":"Software"}'; is true
또한 자바 스크립트 배열을 문자열로 변환합니다
var arrayObject=["ABC","Software"];// It is array object
var arrString=JSON.stringify(array);// It is string representation of the array (object)
// arrString === '["ABC","Software"]'; is true
서버에서 JSON 데이터를 수신하면 데이터가 문자열 형식이되므로 문자열을 JSON 객체로 변환합니다.
JSON.parse() //To convert the string into JSON object.
var data='{ "name":"ABC", "Dept":"Software"}'// it is a string (even though it looks like an object)
var JsonData= JSON.parse(data);// It is a JSON Object representation of the string.
// JsonData === { "name":"ABC", "Dept":"Software"}; is true
JSON.parse()
String을 Object로 변환하는 데 사용됩니다.
JSON.stringify()
Object를 String으로 변환하는 데 사용됩니다.
이것도 참조 할 수 있습니다 ...
<script type="text/javascript">
function ajax_get_json(){
var hr = new XMLHttpRequest();
hr.open("GET", "JSON/mylist.json", true);
hr.setRequestHeader("Content-type", "application/json",true);
hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
/* var return_data = hr.responseText; */
var data=JSON.parse(hr.responseText);
var status=document.getElementById("status");
status.innerHTML = "";
/* status.innerHTML=data.u1.country; */
for(var obj in data)
{
status.innerHTML+=data[obj].uname+" is in "+data[obj].country+"<br/>";
}
}
}
hr.send(null);
status.innerHTML = "requesting...";
}
</script>
JSON.parse () 는 JSON 문자열을 가져 와서이를 JavaScript 객체로 변환합니다.
JSON.stringify () 는 JavaScript 객체를 가져 와서 JSON 문자열로 변환합니다.
const myObj = {
name: 'bipon',
age: 25,
favoriteFood: 'fish curry'
};
const myObjStr = JSON.stringify(myObj);
console.log(myObjStr);
// "{"name":"bipon","age":26,"favoriteFood":"fish curry"}"
console.log(JSON.parse(myObjStr));
// Object {name:"bipon",age:26,favoriteFood:"fish curry"}
메소드는 일반적으로 객체에서 사용되지만 배열에서도 사용할 수 있습니다.
const myArr = ['simon', 'gomez', 'john'];
const myArrStr = JSON.stringify(myArr);
console.log(myArrStr);
// "["simon","gomez","john"]"
console.log(JSON.parse(myArrStr));
// ["simon","gomez","john"]
참고 : https://stackoverflow.com/questions/17785592/difference-between-json-stringify-and-json-parse
'Programming' 카테고리의 다른 글
JavaScript를 최소화 / 압축 해제하는 도구 (0) | 2020.02.18 |
---|---|
MongoDB 데이터베이스에서 모든 것을 삭제하십시오 (0) | 2020.02.18 |
Express에서 전체 URL을 얻는 방법? (0) | 2020.02.18 |
Matplotlib에서, 인수가 fig.add_subplot (111)의 의미는 무엇입니까? (0) | 2020.02.18 |
Ubuntu에 Boost를 설치하는 방법 (0) | 2020.02.18 |