최신글
hyeonga_code
JSON_06_응답 결과를 자바스크립트 객체로 저장하기 28.09.59 본문
반응형
- 응답 결과를 자바스크립트 객체로 저장하기
- XML 응답에서 값을 추출하여 객체에 저장하기
- prototype > 'member_xml.jsp' jsp 파일 생성하기
=====
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?xml version="1.0" encoding="UTF-8" ?>
<%@ page contentType="text/xml; charset=UTF-8" %>
<result>
<code>success</code>
<data>
<member>
<name>nameValue</name>
<id>javaline</id>
<sno>7000001000000</sno>
</member>
</data>
</result>
|
- prototype > 'loadMemberFromXML.html' html 파일 생성하기
=====
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>loadMemberFromXML.html</title>
<script type="text/javascript" src="ajax.js"></script>
<script type="text/javascript" src="member.js">
window.load = function() {
new ajax.xhr.Request("member_xml.jsp", "", viewInfo, "GET");
}
function viewInfo(req){
if(req.readyState == 4){
if(req.status == 200){
var docXML = req.responseXML;
var code = docXML.getElementsByTagName("code").item(0).firstChild.nodeValue;
if(code == 'success'){
var name = docXML.getElementsByTagName("name").item(0).firstChild.nodeValue;
var id = docXML.getElementsByTagName("id").item(0).firstChild.nodeValue;
var sno = docXML.getElemetsByTagName("sno").item(0).firstChild.nodeValue;
var mem = new Member(name, id, sno);
alert(mem.toString() + ", " + mem.getAge());
} else {
alert("Fail");
}
} else {
alert("Error : " + req.status);
}
}
}
</script>
</head>
<body>
</body>
</html>
|
- loadMemberFromXML.html 파일을 실행합니다.
- JSON 응답을 객체로 변환하기
- prototype > 'member_json.jsp' jsp 파일 생성하기
=====
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<%@ page language="java" contentType="text/plain; charset=UTF-8"
pageEncoding="UTF-8"%>
{
code : 'success',
data : {
member : {
name : 'nameValue',
id : 'idVlaue',
sno : '7000001000000'
}
}
}
|
- prototype > 'loadMemberFromJSON.html' html 파일 생성하기
=====
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>loadMemberFromJSON.html</title>
<link rel="shortcut icon" href="#">
<script type="text/javascript" src="ajax.js"></script>
<script type="text/javascript">
window.onload = function() {
new ajax.xhr.Request("member_json.jsp", "", viewInfo, "GET");
}
function viewInfo(req){
if(req.readyState == 4){
if(req.status == 200){
// req.responseText 문자열을 eval로 변환합니다.
var result = eval("(" + req.responseText + ")");
/*
- eval 주의사항
- 잘 안되는 경우가 있습니다.
>>> json.parse()로 변환합니다.
'https://www.w3schools.com/js/js_json_parse.asp'
*/
// 변경 ? var data = JSON.parse(req.responseText);
if(result.code == 'success'){
var m = result.data.member;
alert(m.id + "[" + m.name + "]");
} else {
alert("Fail");
}
} else {
alert("Error : " + req.status);
}
}
}
</script>
</head>
<body>
</body>
</html>
|
- loadMemberFromJSON.html 파일 실행하기
- XML과 JSON 응답을 조합하여 객체로 변환하기
- 전체적인 구조는 XML을 유지합니다.
- 데이터 부분은 JSON으로 표시한 파일로 작성합니다.
- prototype > 'member_xmljson.jsp' jsp 파일 생성하기
=====
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?xml version="1.0" encoding="UTF-8" ?>
<%@ page contentType="text/xml; charset=UTF-8" %>
<result>
<code>success</code>
<data>
<![CDATA[
{
name : 'nameValue',
id : 'idValue',
sno : '7000001000000'
}
]]>
</data>
</result>
|
- prototype > 'loadMemberFromXMLJSON.html' html 파일 작성하기
=====
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>loadMemberFromXMLJSON.html</title>
<script type="text/javascript" src="ajax.js"></script>
<script type="text/javascript" src="member.js"></script>
<script type="text/javascript">
window.onload = function(){
new ajax.xhr.Request("member_xmljson.jsp", "", viewInfo, "GET");
}
function viewInfo(req){
if(req.readyState == 4){
if(req.status == 200){
var docXML = req.responseXML;
var code = docXML.getElementsByTagName("code").item(0).firstChild.nodeValue;
if(code == "success"){
var dataJSON = docXML.getElementsByTagName("data").item(0).firstChild.nodeValue;
var data = eval("(" + dataJSON + ")");
/*
- eval 주의사항
- 잘 안되는 경우가 있습니다.
>>> json.parse()로 변환합니다.
'https://www.w3schools.com/js/js_json_parse.asp'
*/
// alert(dataJSON);
// 변경 >>>
//var data = JSON.parse(dataJSON);
alert(data.name + "[" + data.id + "]");
} else{
alert("Fail");
}
} else {
alert("Error : " + req.status);
}
}
}
</script>
</head>
<body>
</body>
</html>
|
- loadMemberFromXMLJSON.html 파일 실행하기
반응형
'JSON' 카테고리의 다른 글
JSON_09_JSON ArrayList (0) | 2023.11.04 |
---|---|
JSON_08_JSON 파일 만들기 (0) | 2023.11.04 |
JSON_07_JSON 표기법 응답 생성 시 주의할 점 (0) | 2023.10.28 |
JSON_05_자바스크립트에서 패키지 정의하기 (0) | 2023.10.28 |
JSON_04_JSON 표기법 (0) | 2023.10.27 |