모두,
2부 질문이 있습니다.
1 부.
다음과 같은 JSON 파일이 있다고 가정해 보겠습니다.
[
{
"Cat1": {
"SubCat1": {
"Param1": "AA",
"Param2": "BB"
},
"SubCat2": {
"Param1": "AB",
"Param2": "BC"
}
},
"Cat2": {
"SubCat1": {
"Param1": "BA",
"Param2": "BC"
},
"SubCat2": {
"Param1": "CB",
"Param2": "BD"
}
}
}
]다음과 같은 것을 얻으려면 JMP(GUI 또는 스크립트 사용)로 가져오려면 어떻게 해야 합니까?

지금까지 나는 많은 열과 한 행을 얻고 있습니다.
2 부.
이제 JMP 테이블을 JSON 파일로 변환해야 합니다. 위와 같은 JMP 파일이 있다고 가정해 보겠습니다. JSON으로 간단히 저장하면 다음과 같이 됩니다.
[
{
"Category" : "Cat1",
"SubCategory" : "SubCat1",
"Parameter" : "Param1",
"Value" : "AA"
},
{
"Category" : "Cat1",
"SubCategory" : "SubCat1",
"Parameter" : "Param2",
"Value" : "BB"
},
{
"Category" : "Cat1",
"SubCategory" : "SubCat2",
"Parameter" : "Param1",
"Value" : "AB"
},
{
"Category" : "Cat1",
"SubCategory" : "SubCat2",
"Parameter" : "Param2",
"Value" : "BC"
},
{
"Category" : "Cat2",
"SubCategory" : "SubCat1",
"Parameter" : "Param1",
"Value" : "BA"
},
{
"Category" : "Cat2",
"SubCategory" : "SubCat1",
"Parameter" : "Param2",
"Value" : "BC"
},
{
"Category" : "Cat2",
"SubCategory" : "SubCat2",
"Parameter" : "Param1",
"Value" : "CB"
},
{
"Category" : "Cat2",
"SubCategory" : "SubCat2",
"Parameter" : "Param2",
"Value" : "BD"
}
]좋지 않습니다.
하지만 다음과 같은 AA를 구성하고 JSON으로 저장하면:
AA = [
"Cat1"=> [
"SubCat1"=> [
"Param1"=> "AA",
"Param2"=> "BB"
],
"SubCat2"=> [
"Param1"=> "AB",
"Param2"=> "BC"
]
],
"Cat2"=> [
"SubCat1"=> [
"Param1"=> "BA",
"Param2"=> "BC"
],
"SubCat2"=> [
"Param1"=> "CB",
"Param2"=> "BD"
]
]
];
JSON = As JSON Expr(AA);
Save Text File("C:\Users\MyUser\JMPtoJSON\AAtoJSON.json", JSON)그런 다음 필요한 JSON을 얻습니다.
질문 - 이와 같은 JMP 테이블에서 이와 같은 AA를 구성하는 가장 효율적인 방법은 무엇입니까?
감사 해요!
안녕하세요,
언뜻 보기에 원본 JSON 파일에는 JMP JSON 가져오기 루틴을 혼동하는 열 헤더가 포함되어 있지 않습니다. 그냥 생각.
최상의,
TS
"Column1"과 같은 일반 이름을 사용해야 하거나 GUI를 통해 수행하는 경우 입력할 수 있는 옵션이 있어야 한다고 생각합니다.
제 생각에는 다음과 같이 말할 수 있는 옵션이 있어야 한다고 생각합니다. 레벨 1의 모든 항목이 이 열로 이동하고, 레벨 2의 모든 항목이 해당 열로 이동하는 식입니다.
파트 1 답변
dt1 = Open(
Char To Blob(
"\[[
{
"Cat1": {
"SubCat1": {
"Param1": "AA",
"Param2": "BB"
},
"SubCat2": {
"Param1": "AB",
"Param2": "BC"
}
},
"Cat2": {
"SubCat1": {
"Param1": "BA",
"Param2": "BC"
},
"SubCat2": {
"Param1": "CB",
"Param2": "BD"
}
}
}
]]\"
),
json
);
dt2 = dt1 << Transpose( columns( dt1 << getcolumnnames ) ); // the 8 columns become the 8 rows
name = {"category", "SubCategory", "Parameter"}; // add these new column names
For( i = 1, i <= nitems(name), i += 1,
nc = dt2 << New Column( name[i], formula( Word( i, label, "." ) ) );
dt2 << runformulas; // run,
nc << deleteformula(); // and remove so label is no longer referenced
);
// pretty it up...
dt2:row1 << setname( "value" );
dt2 << deletecolumns( label ); // unreferenced now, and not needed
// move value to end if desired...
dt2:value << setselected; dt2 << move selected columns( to last ); dt2 << Clear Column Selection(); 가져오기 테이블에는 데이터가 한 행에 있지만 열 이름으로 인코딩됩니다. 조옮김 후 열 수식에서 word() 함수를 사용하여 점으로 구분된 이름을 3개의 열로 분할합니다. 레이블 열이 이제 중복되므로 제거할 수 있도록 수식을 제거합니다.
전치 및 열화