IT지식/Computer Science

JSON이란?

맨땅에헤딩개발자 2024. 12. 25. 16:44

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