메뉴 건너뛰기

조회 수 10323 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

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 형식의 데이터를 넣어 봤습니다.

말로 설명하기 좀 어려운데 아래 소스를 실행해 보시기 바랍니다

<%@ 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 type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
      <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>

이런 형식이 됩니다.
{
    "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 부분만 보실분은 확인 안하셔도 됩니다.)


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에 값을 넣습니다


var channelInfoMap = new HashMap();
channelInfoMap.put(keyChannelId, channelImgType+"`"+channelType+"`"+channelTypeSeq);
var connectionConfMap = new HashMap();
connectionConfMap.put(conn[i].id, cStatus+"`"+cDay+"`"+cHour);


그리고 생성한 HashMap를 가져와 데이터를 추출 하고 JSON 형식으로 만듭니다.


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"}
]
}
*/



  1. JavaScript 에서 JSON 생성

    Date2016.11.17 Views10323
    Read More
  2. Javascript 로 초성검색하기

    Date2019.01.10 Views2374
    Read More
  3. JavaScript 날짜관련함수

    Date2014.02.27 Views5702
    Read More
  4. Javascript selectbox selected 컨트롤

    Date2018.06.21 Views10058
    Read More
  5. Javascript - 화면 캡처 후 서버에 저장하기(html2canvas 사용법, 주의사항)

    Date2021.03.09 Views2176
    Read More
  6. Javascript - 입력한 년, 월의 마지막 날짜 구하기

    Date2021.03.09 Views224
    Read More
  7. Javascript - 입력받은 숫자를 순서대로 홀짝 별로 배열에 삽입하기

    Date2021.03.09 Views302
    Read More
  8. Javascript - 이미지 미리보기 회전되어 나옴(EXIF)

    Date2021.03.09 Views36357
    Read More
  9. Javascript - 유효성 체크(이메일 정규식, IP 정규식, 비밀번호 등)

    Date2021.03.09 Views729
    Read More
  10. Javascript - 사업자 등록번호 유효성 체크

    Date2021.03.09 Views1089
    Read More
  11. javascript - vanillaJS로 체크박스(checkbox) 제어하기

    Date2021.03.09 Views498
    Read More
  12. Javascript - Free SVG 한국맵 제어 처리

    Date2021.03.09 Views873
    Read More
  13. Javascript - form태그 내부 ajax처리시 2번 전송되는 현상

    Date2021.03.09 Views268
    Read More
  14. Javascript - Calendar 달력 생성하고 제어하기

    Date2021.03.09 Views513
    Read More
  15. input에 background-image 이벤트

    Date2014.03.01 Views5356
    Read More
  16. input 테그안의 숫자 3자리 마다 콤마 찍기

    Date2014.03.01 Views6074
    Read More
  17. input 태그에서 name과 id의 차이

    Date2019.01.16 Views1089
    Read More
  18. input 빈칸 체크

    Date2014.03.01 Views6271
    Read More
  19. input 박스에서 유용한 자바 스크립트

    Date2014.02.27 Views5455
    Read More
  20. input type file multiple list (파일 업로드 리스트 확인)

    Date2016.11.17 Views12437
    Read More
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 Next
/ 13

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved