728x90
반응형
# JSON (JavaScript Object Notation)
데이터를 교환하고 저장하기 위해 만들어진 텍스트 기반의 테이터 교환 표준입니다.
*현재는 가장 많이 사용된다.
● 특징
1. JSON은 자바스크립트를 확장하여 만들어졌습니다.
2. JSON은 자바스크립트 객체 표기법을 따릅니다.
3. JSON은 프로그래밍 언어와 운영체제에 독립적입니다.
# XML (EXtensible Markup Langauage)
HTML과 비슷한 문자 기반의 마크업 언어입니다. 데이터를 저장하고 전달할 목적으로 만들어졌습니다.
* 안드로이드 프로그래밍 안에서 데이터를 주고 받을 때 많이 사용된다!
● JSON과 XML의 공통점
1. 둘다 데이터를 저장하고 전달하기 위해 만들어졌습니다.
2. 기계뿐 아니라 사람도 읽기 쉽게 만들어졌습니다.
3. 계층 데이터 구조를 가집니다.
4. 프로그래밍 언어에 의해 파싱될 수 있습니다.
JSON 예시
{
"userNum": 2,
"userHp": "010-2222-2222",
"userAddr": "%EC%84%9C%EC%9A%B8+%EA%B0%95%EB%82%A8%EA%B5%AC",
"userName": "%EB%B0%98%ED%95%98%EB%82%98",
"userAge": 10
}
XML 예시
<dog>
<name>달라</name>
<family>사모예드</family>
<age>1</age>
<weight>30</weight>
</dog>
● JSON 문법
1. { 로 시작해서 } 로 끝납니다.
2. JSON은 이름과 값으로 구성된 프로퍼티의 집합으로 만들어져 있습니다.
{ "name":"루시"; "family":"포메리안"; "age":9; "weight":2.5; }
3. 주석이 없습니다.
4. 배열은 대괄호([])로 둘러쌓여 있습니다.
{ "dog":[ {"name":"루시", "family":"포메리안", "age":9, "weight":2.5}
{"name":"루시", "family":"포메리안", "age":9, "weight":2.5} ] }
5. 객체 안에 객체를 사용할 수 있습니다.(배열 안에 배열도 가능)
{ "name":"루시"; "family":"포메리안"; "age":9; "weight":2.5,
"owner": { "name":"홍길동", "phone":"010-1111-1111", "adr":"서울시 강남구" } }
● 데이터 타입
* 숫자 : 정수(1), 실수(2.5), 지수(5.11e+2)
* 문자열 : "루시", \n, \t ..
* 불리언 : true, false
* 객체 : { 키:값 }
* 배열 : [값, 값, .. ]
* null : null(데이터가 없다)
● json 문법 검증 사이트
예시)
java
package com.koreait.model;
public class User {
private int userNum;
private String userName;
private int userAge;
private String userHp;
private String userAddr;
public User(int userNum, String userName, int userAge, String userHp, String userAddr) {
this.userNum = userNum;
this.userName = userName;
this.userAge = userAge;
this.userHp = userHp;
this.userAddr = userAddr;
}
public int getUserNum() {
return userNum;
}
public void setUserNum(int userNum) {
this.userNum = userNum;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getUserAge() {
return userAge;
}
public void setUserAge(int userAge) {
this.userAge = userAge;
}
public String getUserHp() {
return userHp;
}
public void setUserHp(String userHp) {
this.userHp = userHp;
}
public String getUserAddr() {
return userAddr;
}
public void setUserAddr(String userAddr) {
this.userAddr = userAddr;
}
}
servlet
@WebServlet(name="FormTest3", urlPatterns= {"/formtest3"})
public class FormTest3Servlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public FormTest3Servlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ArrayList<User> list = new ArrayList<>();
User user1 = new User(1, "김사과", 20, "010-1111-1111", "서울 동작구");
User user2 = new User(2, "반하나", 10, "010-2222-2222", "서울 강남구");
User user3 = new User(3, "오렌지", 23, "010-3333-3333", "서울 서초구");
User user4 = new User(4, "이메론", 28, "010-4444-4444", "서울 구로구");
User user5 = new User(5, "박수박", 34, "010-5555-5555", "서울 양천구");
list.add(user1);
list.add(user2);
list.add(user3);
list.add(user4);
list.add(user5);
int userNum = Integer.parseInt(request.getParameter("userNum"));
User user = list.get(userNum-1);
JSONObject result = new JSONObject();
result.put("userNum", user.getUserNum());
result.put("userName", URLEncoder.encode(user.getUserName(), "UTF-8"));
result.put("userAge", user.getUserAge());
result.put("userHp", user.getUserHp());
result.put("userAddr", URLEncoder.encode(user.getUserAddr(), "utf-8"));
response.setContentType("application/json");
PrintWriter out = response.getWriter();
out.print(result);
out.flush();
out.close();
}
}
728x90
반응형
'🎨 Programming > JavaScript' 카테고리의 다른 글
[JavaScript] 16. 이벤트 (0) | 2020.09.19 |
---|---|
[JavaScript] 15. 폼(Form) 객체 / 정규식 표현 (0) | 2020.09.19 |
[JavaScript] 14. 노드(Node) (0) | 2020.09.19 |
[JavaScript] 13. 문서 객체 모델(Document Object Model) (0) | 2020.09.19 |
[JavaScript] 12. 브라우저 객체 모델(Browser Object Model) (0) | 2020.09.19 |