JSON(JavaScriptObjectNotation)은 Javascript객체 문법으로 구조화된 데이터교환형식, python, javascript, java 등
여러 언어에서 데이터 교환형식으로 쓰이며 객체문법말고도 단순 배열, 문자열도 표현 가능합니다.
1.Javascript객체문법
-키(key), 값(value)으로 구성됨
-이미 존재하는 키를 중복선언하면 나중에 선언된 값이 덮어쓰는구조
ex)
const player = {
"soccerplayer" : [{
"name" : "kaka",
"position" : "attacker"
},
{
"name" : "kimminjae",
"position" : "defender"
}
]
}
출력값
1.console.log(a.soccerplayer)
2.console.log(a.soccerplayer[0])
3.console.log(a.soccerplayer[0].name)
4.console.log(a.soccerplayer[0]["name"])
결과값
1. [{name:'kaka', position: 'attacker'}, {name:'kimminjae', position: 'defender'}]
2. {name:'kaka', position: 'attacker'}
3. kaka
4. kaka
2.JSON의 타입
javascript object와 유사합니다만
undefined, 메서드 등을 포함하지 않습니다.
-수(Number)
-문자열(String)
-참/거짓(Boolean)
-배열(Array)
-객체(Object)
-null
ex2)
const player = {
"country" : "korea",
"bestplayer" : {
"player1" : {
"name" : "sonheungmin",
"position" : "attacker"
},
"player2" : {
"name" : "kimminjae",
"position" : "defender"
}
}
}
const player = {
"country" : "korea",
"bestplayer" : [{
"name" : "sonheungmin",
"position" : "attacker"
},
{
"name" : "kimminjae",
"position" : "defender"
}
]
}
3.JSON의 직렬화, 역직렬화
JSON은 프로그래밍 언어와 프레임워크 등에 독립적이므로, 서로 다른 시스템간에 데이터를 교환하기에 좋습니다.
단, JSON을 그대로 쓸 수 없고 프레임워크나 사용언어에 맞게 직렬화를 시켜 써야하는데요
예를들어 json파일을 javascript에서 써야한다면
const fs = require('fs')
const path = require('path')
const jsonFile = fs.readFileSync(path.join(__dirname, "a.json"))
const jsonFileAfter = JSON.parse(jsonFile)
1.console.log(typeof(jsonFileAfter))
const jsonFileBefore = JSON.stringify(jsonFileAfter)
2.console.log(typeof(jsonFileBefore))
결과값
1.object
2.string
역직렬화 한 JSON값을 python에서 읽으려면
y = json.loads(jsonFileBefore)
이런식으로 JSON형태를 각 언어나 프레임워크에 맞게 변형하는것을 직렬화,
직렬화되어있는것을 다시 JSON으로 변환하는것을 역직렬화라고 한다.
출처 - 인프런 강의(큰돌님의 cs지식의정석 중..)
'IT지식 > Computer Science' 카테고리의 다른 글
API란? (1) | 2024.12.26 |
---|---|
XML이란? (0) | 2024.12.25 |
데이터베이스 인덱스(INDEX)란? (0) | 2024.12.24 |
DATABASE에서 VIEW를 사용하는 이유 (0) | 2024.12.24 |
개발4년차 첫CS를 공부하다 (5) | 2024.12.24 |