상세 컨텐츠

본문 제목

[Nexacro] Dataset을 Json으로 변환

by ayudante 2023. 9. 20. 15:31

본문

Dataset을 이용하여 Json 변환이 필요할 경우가 있다.

 

특히 여러개의 Dataset을 계층구조를 가진 Json으로 변환해야 할 경우 사용한 방법은 아래와 같다.

 

 

1. Dataset을 Object로 변환

 

this.fn_cvtToObject = function(aDs) {
	var arrObj = [];
	var sObj = {};
	var rowCnt = aDs.getRowCount();
    
	for(var rowIdx=0; rowIdx<rowCnt; rowIdx++) {
		for(var colIdx=0; colIdx<aDs.getColCount(); colIdx++) {
			var sName = aDs.getColumnInfo(colIdx).name;
			var sData = "" + aDs.getColumn(rowIdx, colIdx);
            
			sObj[sName] = sData;
		}
        
		if(rowCnt > 1) {
			arrObj.push(sObj);
			sObj = {};
		}
	}
    
    if(rowCnt > 1) return arrObj;
    else return sObj;
}

 

※ Dataset이 여러개의 Row를 가질 때 array에 push 후 만들어진 Object의 초기화를 반드시 해줘야 한다.

 

 

반응형

 

 

 2. 상위 계층의 Object에 하위 계층의 Object를 추가

 

var objParent = this.fn_cvtToObject(this.dsParent);
var objChild = this.fn_cvtToObject(this.dsChild);

objParent["하위계층 이름"] = objChild;

 

 

3. 만들어진 최종 Object를 Json으로 변환

    -  JSON.stringify()를 이용

 

 

Dataset을 이용하여 복잡한 계층구조를 가진 Json으로 변환이 가능하다.

 

물론 이렇게 하는 경우는 거의 없을듯...

관련글 더보기

댓글 영역