WEB

javascript JSON object validation

PSAwesome 2020. 4. 4. 15:10
반응형

JSON object의 0번부터 n 까지 모든 요소를 검사해서

없는 key를 알려주고, 동작을 멈추는 기능의 함수

 

input data

const data = {
  "name": "PS",
  "code": "10)00000000",
  "url": "https://tistory.com",
  "temp_url": "https://tistory.com/myface.jpg",
  "temp_desc": "a girl on the left:〈input〉〈script〉alert(\"true\");〈/script〉",
  "thumb_img": "myface.jpg",
  "summary": "ㄹㄹㅇㅇㅂㅂ",
  "title": "테스트-333",
  "id": 3072384
}

 

함수 로직

function validate(dataJson, excludePattern) {
        var obj = Object.assign({}, dataJson),
            result = [];

        Object.getOwnPropertyNames(dataJson)
            .filter(value => value && excludePattern ? !value.match(excludePattern) : true)
            .forEach(value => {if (!obj[value]) result.push(value)});
            
        if (result.length > 0) {
            alert("[ " + result.join(",") + " ] 이(가) 없습니다.");
            return true;
        }
        return false;
    }

 

호출

if (validate(data, /summary|thumb_img|temp_desc/i)) {
	return;
}

 

반응형