안녕하세요 여러분!
작은 테이블을 연관 배열 목록으로 만들어야 합니다. 각 행은 해당 목록의 멤버이며, 열 이름을 키로, 행 값을 값으로 하는 연관 배열입니다.
현재 제 상황은 다음과 같습니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
listAA = {};
columnList = dt << Get Column Names( string );
For Each Row(
currentAA = Associative Array();
For Each( {columnName, index}, columnList, currentAA[columnName] = Column( dt, columnName ) );
Insert Into( listAA, currentAA );
);
//Check
listAA[1]["age"]
//:*/
listAA[1]["age"]
/*:
Column( "age" )
출력은 값이 아니라 열에 대한 참조입니다. 따라서 For Each Row 구문 내에서 Column(name)을 사용하여 열을 참조하는 경우에는 작동하지 않고, 스크립팅 색인에 나와 있는 것처럼 하드코딩된 이름만 작동하는 것 같습니다.
For Each Row( :height = -:height );
질문:
1. 테이블에서 AA 목록을 가져오는 간단하고 효율적인 방법이 있나요? 없다면 현재 버전을 어떻게 수정해야 할까요?
2. "각 행에 대해"를 사용할 때 하드코딩된 방식이 아닌 다른 방식으로 열을 참조하는 방법은 무엇입니까?
감사해요,
중.
아마 이런 것일지도 몰라요
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
collist = dt << Get Column Names(string);<BR />
l = {};
For Each Row(
aa = Associative Array(collist, dt[Row(), 0]);
Insert Into(l, aa);
);
Show(l);
.json 형식으로 저장한 다음 AA로 파싱할 수도 있습니다.
Names Default To Here(1);
path = "$TEMP/test.json";
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Save(path);
json_str = Load Text File(path);
Delete File(path);
l = Parse JSON(json_str);