- 전체
- HTML
- Web Design (웹디자인)
- XE 응용 개발
- wordpress plugin dev
- Javascript & JavaScript Application
- MEAN Stack : full stack javascript
- angular js & ionic framework
- bootstrap
- WebGL, Three.js and Babylon.js
- restful api design
- mobile web
- node.js 응용
- Cloud Service 응용
- 웹 어셈블리 개발 [WASM, WebAssembly]
- 마이크로서비스, MSA (microservice architecture)
- WebGL / WebGPU
- next.js 개발
- micro frontend (마이크로프론트앤드)
- 전자상거래/쇼핑몰
- 서버 클라우드 (aws, azure, google)
HTML JavaScript에서 json을 생성 하는 방식입니다.
2019.01.10 17:55

JavaScript에서 json을 생성 하는 방식입니다.
* JavaScript 에서 JSON Parse 하시려는 분은 여기 참고 => http://huskdoll.tistory.com/49
* JAVA 에서 JSON 생성 하시려는 분은 여기 참고 => http://huskdoll.tistory.com/38
* JAVA에서 JSONParser 사용 하시려는 분은 여기 참고 => http://huskdoll.tistory.com/6
json은 key : value 방식 으로 되어 있는데요. value 안에 다시 json 형식의 데이터를 넣어 봤습니다.
말로 설명하기 좀 어려운데 아래 소스를 실행해 보시기 바랍니다.
|
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><%@ page session="false" %><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html> <head> <title>Home</title> <script> $(function() { $("#checkJson").click(function() { //사람 정보 var personArray = new Array(); var personInfo = new Object(); personInfo.name = "송강호"; personInfo.age = "25"; personInfo.gender = "남자"; personInfo.nickname = "남궁민수"; personArray.push(personInfo); personInfo = new Object(); personInfo.name = "전지현"; personInfo.age = "21"; personInfo.gender = "여자"; personInfo.nickname = "예니콜"; personArray.push(personInfo); //책 정보 var bookArray = new Array(); bookInfo = new Object(); bookInfo.name = "사람은 무엇으로 사는가?"; bookInfo.writer = "톨스토이"; bookInfo.price = "100"; bookInfo.genre = "소설"; bookInfo.publisher = "톨스토이 출판사"; bookArray.push(bookInfo); bookInfo = new Object(); bookInfo.name = "홍길동전"; bookInfo.writer = "허균"; bookInfo.price = "300"; bookInfo.genre = "소설"; bookInfo.publisher = "허균 출판사"; bookArray.push(bookInfo); bookInfo = new Object(); bookInfo.name = "레미제라블"; bookInfo.writer = "빅토르 위고"; bookInfo.price = "900"; bookInfo.genre = "소설"; bookInfo.publisher = "빅토르 위고 출판사"; bookArray.push(bookInfo); //사람, 책 정보를 넣음 var totalInfo = new Object(); totalInfo.persons = personArray; totalInfo.books = bookArray; var jsonInfo = JSON.stringify(totalInfo); console.log(jsonInfo); //브라우저 f12개발자 모드에서 confole로 확인 가능 alert(jsonInfo); }); }); </script> </head> <body> <br> <br> <a id="checkJson" style="cursor:pointer">확인</a> </body></html> |
이런 형식이 됩니다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
{ "persons":[ {"name":"송강호","age":"25","gender":"남자","nickname":"남궁민수"}, {"name":"전지현","age":"21","gender":"여자","nickname":"예니콜"} ], "books":[ {"name":"사람은 무엇으로 사는가?","writer":"톨스토이","price":"100","genre":"소설","publisher":"톨스토이 출판사"}, {"name":"홍길동전","writer":"허균","price":"300","genre":"소설","publisher":"허균 출판사"}, {"name":"레미제라블","writer":"빅토르 위고","price":"900","genre":"소설","publisher":"빅토르 위고 출판사"} ]} |
완성된 JSON 데이터는 여기에서 (http://jsonlint.com/) 검증 및 정렬 해보시면 됩니다.
* 여기 아래부터는 제가 프로젝트에서 사용한 소스의 일부분 인데 나중에 다시 보기 위해 적었습니다.
위와 동일한 방식이지만 데이터 넣는 부분을 HashMap 처리 해 보았습니다.
간단한 방식은 위에 소스를 참고 해주세요.
일단 JavaScript에서 HashMap 처럼 사용하기 위해 함수를 하나 생성 합시다. (JSON 부분만 보실분은 확인 안하셔도 됩니다.)
|
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
|
HashMap = function(){ this.map = new Array(); }; HashMap.prototype = { put : function(key, value){ this.map[key] = value; }, get : function(key){ return this.map[key]; }, getAll : function(){ return this.map; }, clear : function(){ this.map = new Array(); }, isEmpty : function(){ return (this.map.size() == 0); }, remove : function(key){ delete this.map[key]; }, toString : function(){ var temp = ''; for(i in this.map){ temp = temp + ',' + i + ':' + this.map[i]; } temp = temp.replace(',',''); return temp; }, keySet : function(){ var keys = new Array(); for(i in this.map){ keys.push(i); } return keys; } }; |
HashMap에 값을 넣습니다.
|
1
2
3
4
|
var channelInfoMap = new HashMap();channelInfoMap.put(keyChannelId, channelImgType+"`"+channelType+"`"+channelTypeSeq);var connectionConfMap = new HashMap();connectionConfMap.put(conn[i].id, cStatus+"`"+cDay+"`"+cHour); |
그리고 생성한 HashMap를 가져와 데이터를 추출 하고 JSON 형식으로 만듭니다.
|
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
56
57
|
var channelInfoConf = channelInfoMap.getAll(); //채널 정보를 JSON 형식으로 생성var channelArrayArg = new Array();for(i in channelInfoConf){ var jsonArg = new Object(); jsonArg.name = i; jsonArg.type = channelInfoMap.get(i).split("`")[0]; jsonArg.channelType = channelInfoMap.get(i).split("`")[1]; jsonArg.channelTypeSeq = channelInfoMap.get(i).split("`")[2]; channelArrayArg.push(jsonArg); }//커넥션 정보를 JSON 형식으로 생성var connectionArrayArg = new Array();var connectionVal = connectionMap.getAll();for(i in connectionVal){ var jsonArg = new Object(); jsonArg.name = i; jsonArg.from = connectionMap.get(i).split("`")[0]; jsonArg.to = connectionMap.get(i).split("`")[1]; jsonArg.status = connectionConfMap.get(i).split("`")[0]; jsonArg.day = connectionConfMap.get(i).split("`")[1]; jsonArg.hour = connectionConfMap.get(i).split("`")[2]; connectionArrayArg.push(jsonArg); }var totalAutoPlanInfo = new Object(); totalAutoPlanInfo.channelInfo = channelArrayArg;totalAutoPlanInfo.connectionInfo = connectionArrayArg;alert(JSON.stringify(totalAutoPlanInfo));/* 아래와 같이 만들어 진다. 값은 뭐.... 넣은대로{"channelInfo":[ {"name":"channelWindow2","type":"M","channelType":"10","channelTypeSeq":"1"}, {"name":"channelWindow3","type":"P","channelType":"07","channelTypeSeq":"1"}],"connectionInfo":[ {"name":"con_31","from":"channelWindow1","to":"channelWindow2","status":"s","day":"1","hour":"1"}, {"name":"con_39","from":"channelWindow2","to":"channelWindow3","status":"s","day":"2","hour":"2"}]}*/ |
[출처] http://huskdoll.tistory.com/11
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 7 | [전자상거래/쇼핑몰 개발] [카페24쇼핑몰] 품목생성형과 상품연동형 옵션의 차이점이 궁금합니다. | 졸리운_곰 | 2024.07.30 | 385 |
| 6 |
[전자상거래/쇼핑몰 개발] cafe24 MySQL db 외부접속 방법
| 졸리운_곰 | 2024.07.23 | 566 |
| 5 |
[전자상거래/쇼핑몰 개발] 초보 셀러를 위한 쇼피파이(Shopify) 제작 가이드
| 졸리운_곰 | 2024.07.03 | 585 |
| 4 |
[전자상거래/쇼핑몰 개발] [카페24쇼핑몰] [API] Cafe24 - API 호출 예시
| 졸리운_곰 | 2024.06.25 | 413 |
| 3 | [전자상거래/쇼핑몰 개발] [카페24쇼핑몰] 카페24 무료 쇼핑몰 가입 | 졸리운_곰 | 2024.05.20 | 543 |
| 2 | [전자상거래/쇼핑몰 개발] [카페24쇼핑몰] 카페24 쇼핑몰 상세화면 설정 | 졸리운_곰 | 2024.05.20 | 244 |
| 1 |
[전자상거래/쇼핑몰 개발] [카페24쇼핑몰] 상품상세 검색
| 졸리운_곰 | 2024.05.17 | 611 |

