Oracle/Html_CSS_JAVAScript

JSON , AJAX

unemo 2020. 12. 17. 10:51
반응형

증복된거 추가 안되게끔

여러개선택

등록눌렀을때 초기화

공백 추가안되게


www.w3schools.com/js/js_json_intro.asp

 

JSON Introduction

JSON - Introduction JSON: JavaScript Object Notation. JSON is a syntax for storing and exchanging data. JSON is text, written with JavaScript object notation. Exchanging Data When exchanging data between a browser and a server, the data can only be text. J

www.w3schools.com

 

JSON

크립트 브젝트(객체) 테이션(표기법)

읽을줄만 쓸줄만 알면됨

데이터를 저장하고 교환하기 위한 문법

객체를 텍스트형태로(규칙을 정해놓고 이런객체는ㅇ ㅣ렇게이렇게) 바꾸는 방법중 하나가 json인거임

텍스트기반의 데이터 교환형식(브라우저-서버간의 데이터교환은 텍스트만ㄱ ㅏ능하기때문)

자바스크립트 언어에서 유래

JSON  < > 자바스크립트 서로 변환가능

 

자바스크립트에서 객체만들떄

var car = {

price : 100000

,make : 포르쉐

,model : 카이엔

,break : function(){}

}

이렇게 오브젝트를 만들었는데

JSON은 여기에다가

스트링 기반이니까

다 스트링화

var car = {

"price" : 100000

,"make" : "포르쉐"

,"model" : "카이엔"

,"break" : function(){}

}

 

배열은

 ["ㅇ","ㅁ","ㅇ"]

제이슨은 [{ "name" : "홍" , "addr" : "대전" , "tel" : "ddd"} ,  { "name" : "홍" , "addr" : "대전" , "tel" : "ddd"  }]

name addr같은거에 "" 만 빼면 자바스크립트

 

제이슨은 두가지만 외우기

1. JSON.stringify(myObj) : 문자열로 변화

오브젝트를 제이슨형식의 문자로바꿔주는것

""안들어가있는거에 "" 넣어주는것

스트링으로 바꿧다는 거는 서버로 전송시라는 말임

 

2.JSON.parse(string, functino ) : java 스크립트 객체로 변환(function안써도됨)

"" 다시뗴어줌

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
	span{
		color: lightskyblue;
	}
</style>
<script src="../../js/jquery-3.5.1.js"></script> 
	<script type="text/javascript">
	var srcObj = {
				name : "홍길동"
				,bir : "1425-12-14"
				,age : 30
				,address : {
							nation : "조선" //어드레스는 객체
							,city : "전라도"
							,gugun : "중구"
							,dong : "구름동"
							,bunji : "46번지"
							}
				,hobby : ["무술", "검술", "독서"] //배열
				}
	
	function testJson(){
			//세팅할건 한번에 해주고
			var str = JSON.stringify(srcObj);
			var obj = JSON.parse(str)
			
			var strhobby = "";
			for(var i  in obj.hobby){
				if(i>0){
				strhobby+=", ";
				}
				strhobby += obj.hobby[i];
			}
			
			var straddr = "";
			for(var x in obj.address){
				straddr += obj.address[x] + " ";
			}
			straddr = straddr.trim();
			
			//넣어주는것도 한번에
			$("#firstSp").text(str);
			$("#secondSp").text(obj);
			$("#nameSp").text(obj.name);
// 			$("#addrSp").text(obj.address.nation +" "+ obj.address.city);
			$("#addrSp").text(straddr);
// 			$("#hobSp").text(obj.hobby); //배열이라 걍 다 나옴 만약 사이사이 더 띄고싶다면?
			$("#hobSp").text(strhobby);
			$("#birSp").text(new Date(obj.bir)); //만약 20201020이런형식이면 안됨
		
		
	}
			
			
</script>
</head>
<body>
<button type="button" onclick="testJson()">JSON 변환 테스트</button><br>
<p>1차변환 (obj > str) :<span id="firstSp"></span></p><br>
<p>2차변환 (str > obj) :<span id="secondSp"></span></p><br>
<p>이름:<span id="nameSp"></span></p><br>
<p>주소:<span id="addrSp"></span></p><br>
<p>취미:<span id="hobSp"></span></p><br>
<p>생년월일:<span id="birSp"></span></p>
</body>
</html>

 

주목할 부분

var strhobby = "";
			for(var i  in obj.hobby){
				if(i>0){
				strhobby+=", ";
				}
				strhobby += obj.hobby[i];
			}
$("#birSp").text(new Date(obj.bir));

 

 

AJAX

프로그래밍언어가 아님

자바스크립트를 이용해서 비동기적으로 서버와 브라우저가 데이터를 주고받는 방식을 의미

전체페이지를 다시 로드하지 않고 웹 페이지의 일부를 업데이트 할 수 있음

브라우저 기본 객체인XMLRequest 를 어쩌구

 

브라우저

1.브라우저에서 이벤트발생
2.자바스트립트에서 xml리퀘스트객체생성 (이객체를 서버로 전송하는거임)(서버로먼가요청하는객체)
3.이객체가 웹서버에 리퀘스트 전송

 

서버

4.서버에서 리퀘스트 받아서 처리
5.그 처리한결과를 웹페이지로 response(응답)전송

 

브라우저

6.받은 응답을 자바스크립트로 읽음
7.자바스크립트로 페이지 업데이트 등 작업 수행 (여기서 우리가 코딩하는거)

 

 

xmlhttprequest객체는 전체 페이지를 다시 로드하지 않고 웹페이지 일부를 업데이트할수있게함

var xhttp = new XMLHttpRequest();
onreadystatechange  
readyState 0: 요청준비 1: 서버연결완료......등
responseText 서버로부터반환된 응답정보
responseXML 그걸 xml형식드로
status 요청에대항상태코드 200이 OK 404는 낫파운드
statusText 요청에 대한 상태문자
abort() 현재요청취소

예전에는 이걸 복잡하게썻ㅆ는데 실제로는 복잡하게쓰지않음


get 방식 요청

xhttp.open("GET",

"ajax_test.jsp?name=홍길동$age=30",true

)

파라미터가 다 보이는게 겟방식

post 방식 요청은 url에 나오지 않음 xhttp.send("name=홍길동&age=30")


XMLHttpRequest의 서버 응답 속성과 메서드

 

responseText : 문자열 형식의 응답정보 반환

responseXML : XML 형식의 응답정보 반환

 

getResponseHeader()

제이쿼리를 사용한 에이젝스 다 재끼구 이런식으로 쓴다.

 

$.ajax 라고쓰면 제이쿼리 내에 정의된 에이젝스 함수들을 부를수있어서 이렇게 간단하게 쓸수있는거임

 

data : 서버로 데이터 전송할떄 사용. 데이터를 전송하는 방법을 지정한다 ("get" 또는 "post" 기본형은 get)

즉 data : $("form") 어쩌고가 서버로전송됨;

dataType : 서버측에서 전송한 응답데이터의 형식을 지정해놓는거임 xml, json, script, html, text로도 받ㅇ르수있음

받아서 내가 뭘로 해석을 할게를 지정해놓는거

문자로 오는데 그걸 브라우저가 저 타입들중에 뭐로 해석할것인냐 그거임

success 성공했을때 호출할 콜백을 지정한다. 

error 실패했을떄 호출할 콜백을 지정한다.

 

반응형

'Oracle > Html_CSS_JAVAScript' 카테고리의 다른 글

부트스트랩 - 클래스를 넣으면 스타일이 적용된다  (0) 2020.12.22
jquery  (0) 2020.12.14
jquery  (0) 2020.12.11
jquery  (0) 2020.12.10
jQuery  (0) 2020.12.08