본문 바로가기
개발/Javascript

[Javascript] JSON 비교 방법 / Object.entries / JSON.stringify

by Allonsy 2021. 2. 18.
반응형

JSON 오브젝트 값 비교 시

depth가 1depth이면서 key의 순서가 보장이 된다면 단순하게 JSON.stringify 만을 이용하여 비교할 수 있다

var j1 = {a:1};
var j2 = {a:1};

var isEqual = JSON.stringify(j1) === JSON.stringify(j2);

그런데  JSON 오브젝트의 depth가 더 깊어지거나, key의 순서가 보장이 되지 않을 경우엔 비교가 어렵다

그때는 Object.entries 와 JSON.stringify를 사용하면 해결할 수 있다

var json1 = {a:1,b:2,c:{cc:3}};
var json2 = {c:{cc:3},a:1,b:2}

var e1 = Object.entries(json1).sort(); // 정렬
var e2 = Object.entries(json2).sort(); // 정렬

var isEqual = JSON.stringify(e1)===JSON.stringify(e2);

Object.entries를 이용하면 json 형식을 배열로 변환해주는데, 이때 sort를 이용하여 배열을 정렬해준다

 

그 후 정렬된 배열을 JSON.stringify를 이용하여 문자로 변환하여 그 값을 서로 비교하면 된다

반응형

댓글