PowerShell V4:
gc .\data.csv | ConvertTo-Json | sc .\data.json
powershell V4, V3:
Usando o PowerShell para análise dinâmica de JSON
PowerShell V2:
Leia o Json Object no Powershell 2.0
Eu fiz bastante progresso pesquisando neste site e aprendendo a linguagem ridícula que é o script em lote do Windows, mas francamente estou preso. A amostra abaixo é do antigo módulo de radiômetro do nosso laboratório que registra regularmente seus dados como arquivos TXT. Eu estou tentando analisá-los em JSON adequado. A idéia é ter um arquivo .bat que possa ser executado periodicamente para alterar todos os registros TXT em uma determinada pasta para o formato JSON.
Algumas das razões pelas quais estou tendo problemas são: o cabeçalho longo, o irrelevante 'PRODUCES' ou 'MFRSR' no cabeçalho, as unidades irrelevantes no cabeçalho, os separadores inconsistentes entre valores, o estranho '* 5' valor para null (que pode ser zero neste caso) e o fato de que os dados contém mais 3 colunas que o cabeçalho (os 3 primeiros valores são de fato uma notação antiga de planilha para o tempo).
*. txt:
PRODUCES
MFRSR Detector Temp , degC
HTR V , V
MFRSR Thermopile Total , W/m^2
MFRSR 414.0nm Total , (W/m^2)/nm
MFRSR 496.6nm Total , (W/m^2)/nm
MFRSR 613.0nm Total , (W/m^2)/nm
MFRSR 670.9nm Total , (W/m^2)/nm
MFRSR 869.3nm Total , (W/m^2)/nm
MFRSR 937.6nm Total , (W/m^2)/nm
MFRSR Thermopile Diffuse , W/m^2
MFRSR 414.0nm Diffuse , (W/m^2)/nm
MFRSR 496.6nm Diffuse , (W/m^2)/nm
MFRSR 613.0nm Diffuse , (W/m^2)/nm
MFRSR 670.9nm Diffuse , (W/m^2)/nm
MFRSR 869.3nm Diffuse , (W/m^2)/nm
MFRSR 937.6nm Diffuse , (W/m^2)/nm
MFRSR Thermopile DirNorm , W/m^2
MFRSR 414.0nm DirNorm , (W/m^2)/nm
MFRSR 496.6nm DirNorm , (W/m^2)/nm
MFRSR 613.0nm DirNorm , (W/m^2)/nm
MFRSR 670.9nm DirNorm , (W/m^2)/nm
MFRSR 869.3nm DirNorm , (W/m^2)/nm
MFRSR 937.6nm DirNorm , (W/m^2)/nm
42099 0.29236 -0.55603 45.20 7.4819 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5
42099 0.57222 0.01180 45.20 7.8285 0.9378 0.0086 0.0086 0.0032 0.0040 0.0018 0.0005 0.9473 0.0093 0.0086 0.0032 0.0040 0.0018 0.0005 -0.8090 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
42099 0.57291 0.01415 45.20 7.8382 1.3587 0.0093 0.0086 0.0032 0.0040 0.0018 0.0005 1.3725 0.0093 0.0086 0.0032 0.0040 0.0023 0.0005 -0.9770 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
42099 0.57361 0.01656 45.20 7.8998 2.6372 0.0099 0.0100 0.0032 0.0040 0.0023 0.0005 2.6641 0.0099 0.0100 0.0032 0.0040 0.0023 0.0005 -1.6210 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
*. json:
PRODUCES1 = {
Id: 42099029236
X: -0.55603
DetectorTemp: 45.20,
HTRV: 7.4819,
ThermopileTotal: 0.0000,
414Total: 0.0000,
496Total: 0.0000,
613Total: 0.0000,
670Total: 0.0000,
869Total: 0.0000,
937Total: 0.0000,
ThermopileDiffuse: 0.0000,
414Diffuse: 0.0000,
496Diffuse: 0.0000,
613Diffuse: 0.0000,
670Diffuse: 0.0000,
869Diffuse: 0.0000,
937Diffuse: 0.0000,
ThermopileDirNorm: 0.0000,
414DirNorm: 0.0000,
496DirNorm: 0.0000,
613DirNorm: 0.0000,
670DirNorm: 0.0000,
869DirNorm: 0.0000,
937DirNorm: 0.0000
};
PRODUCES2 = {
Id: 42099057222
X: -0.55603
DetectorTemp: 45.20,
HTRV: 7.8285,
ThermopileTotal: 0.9378,
414Total: 0.0086,
496Total: 0.0086,
613Total: 0.0032,
670Total: 0.0040,
869Total: 0.0018,
937Total: 0.0005,
ThermopileDiffuse: 0.9473,
414Diffuse: 0.0093,
496Diffuse: 0.0086,
613Diffuse: 0.0032,
670Diffuse: 0.0040,
869Diffuse: 0.0018,
937Diffuse: 0.0005,
ThermopileDirNorm: -0.8090,
414DirNorm: 0.0000,
496DirNorm: 0.0000,
613DirNorm: 0.0000,
670DirNorm: 0.0000,
869DirNorm: 0.0000,
937DirNorm: 0.0000
};
Existe alguém aqui que sabe lote e pode me começar?
PowerShell V4:
gc .\data.csv | ConvertTo-Json | sc .\data.json
powershell V4, V3:
Usando o PowerShell para análise dinâmica de JSON
PowerShell V2:
Leia o Json Object no Powershell 2.0
Tags windows batch json batch-file token