JSON이란?
JavaScript Object Notation의 줄임말로, 데이터 교환을 위해 만들어진 객체 형태의 포맷이다.
JSON.stringify
JSON.parse
자바스크립트 객체 | JSON | |
---|---|---|
키 | 키는 따옴표 없이 쓸 수 있음 | 반드시 큰따옴표를 붙여야 함 |
문자열 값 | 문자열 값은 어떠한 형태의 따옴표도 사용 가능 | 반드시 큰따옴표로 감싸야 함 |
function stringifyJSON(obj){
if(obj === null){
return 'null'
}
if(typeof obj === 'number' || typeof obj === 'boolean'){
return String(obj)
}
if(typeof obj === 'string'){
return `"${obj}"`
}
if(Array.isArray(obj)){
const newArray = [];
for(key of obj){
newArray.push(stringifyJSON(key))
}
return `[${newArray}]`
}
if(typeof obj === 'object'){
let str = ''
for(key in obj){
if(typeof obj[key] === 'function' || obj[key] === undefined) {
return '{}'
}else {
str += `${stringifyJSON(key)}:${stringifyJSON(obj[key])},`
}
}
return `{${str.slice(0, -1)}}`
}
const root = document.getElementById('root');
function createTreeView(menu, currentNode) {
for(key of menu){
const list = document.createElement('li')
// root.append(list)
if(key.children){
const check = document.createElement('input')
list.append(check)
check.setAttribute('type', 'checkbox')
//check.type = 'checkbox'
const span = document.createElement('span')
list.append(span)
span.textContent = key.name
const ul = document.createElement('ul')
list.append(ul)
currentNode.append(list)
createTreeView(key.children, ul);
}else{
list.textContent = key.name;
currentNode.append(list)
}
}
// TODO: createTreeView 함수를 작성하세요.
}
createTreeView(menu, root);