빈 숫자 값이있는 테이블을 JSON으로 저장하면 잘못된 JSON 프리미티브가 발생합니까?다음과 같은 숫자 열 중 하나에 빈 값이있는 테이블을 저장하는 경우 :
New Table( "testEmpty",
Add Rows( 2 ),
New Column( "Col1",
Character,
"Nominal",
Set Selected,
Set Values( {"test", "test"} )
),
New Column( "Col2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [., .] )
)
)JSON 파일로 결과는 다음과 같습니다.
[
{
"Col1" : "test",
"Col2" : .
},
{
"Col1" : "test",
"Col2" : .
}
]모두가 이것이 유효한 JSON 구문이라는 데 동의하지 않는 것 같습니다. Powershell을 사용하여이 파일을 JSON으로 다시 읽은 경우 :
$json = Get-Content -Path 'C:\Users\myUser\testEmpty.json' -ErrorAction Stop | ConvertFrom-Json
오류가 발생합니다.
ConvertFrom-Json : Invalid JSON primitive: ..
At C:\Users\myUser\testEmpty.ps1:1 char:118
+ ... \myUser\testEmpty.json' -ErrorAction Stop | ConvertFrom-Json
+ ~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [ConvertFrom-Json], ArgumentException
+ FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.ConvertFromJsonCommand
이 문제를 해결하는 방법을 아십니까? 스크립트를 사용하여 JSON 파일을 저장할 때 어떤 옵션이 있습니까? 아니면 유일한 해결 방법은 테이블에 빈 값이 없는지 확인하는 것입니다.
데이터 테이블스크립팅Re : 빈 숫자 값이있는 테이블을 JSON으로 저장하면 잘못된 JSON 프리미티브가 발생합니까?유효한 JSON이 되려면 null 값으로 변경해야 할 것이라고 확신합니다.
두 개의 열만있는 경우 데이터 테이블을 연관 배열로 변환하고이를 JSON으로 변환 할 수 있습니다 (참고 : 연관 배열은 중복 키를 허용하지 않습니다. 유효한 JSON은 있지만 중복 키로 작업하는 것이 얼마나 좋은지 확실하지 않습니다.)
Names Default To Here(1);
dt = New Table( "testEmpty",
Add Rows( 2 ),
New Column( "Col1",
Character,
"Nominal",
Set Selected,
Set Values( {"test", "test1"} )
),
New Column( "Col2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [., .] )
)
);
aa = Associative Array(Column(dt, "Col1"), Column(dt, "Col2"));
json = As JSON Expr(aa);이것은 다음과 같습니다.
"{\!"test \! ": null, \!"test1 \! ": null}"
Save Text File ( "c : \ temp \ test.json", json)을 사용하여 저장하면 JMP 이스케이프 된 따옴표 { "test": null, "test1": null}이 제거됩니다.