У меня есть файл, созданный с помощью XHR-выборки XML и анализа его через модуль узла xlm2js
, а затем JSON.stringify
. Он имеет около 700 сегментов двух основных типов. Это отредактированная версия файла с одним сегментом каждого типа:
{
"NewDataSet": {
"Table": [
{
"SegmentID": [
"2342"
],
"StationID": [
"005es00045:_MN_Stn"
],
"SegmentName": [
"I-5 NB MP0.45 @ SR-14"
],
"SegmentType": [
"2"
],
"SegmentLength": [
"1135"
],
"MinimumLanesReporting": [
"0.5"
],
"CalculationThreshold": [
"30"
],
"CalculationPeriod": [
"2"
],
"MinimumSamples": [
"3"
],
"SegmentMaximumFilter": [
"774"
],
"SegmentMinimumFilter": [
"12"
],
"StandardDeviationSamples": [
"15"
],
"StandardDeviationMultiplier": [
"1.96"
],
"UseStandardDeviationFilter": [
"false"
],
"IsActive": [
"true"
]
},
{
"SegmentID": [
"3051"
],
"BeginningDcuID": [
"584"
],
"EndDcuID": [
"589"
],
"SourceSystem": [
"TravelTime"
],
"SegmentName": [
"OR212 at SE 242nd Ave to OR212 at SE Foster Rd"
],
"SegmentType": [
"1"
],
"SegmentLength": [
"100"
],
"CalculationThreshold": [
"60"
],
"CalculationPeriod": [
"10"
],
"MinimumSamples": [
"3"
],
"SegmentMaximumFilter": [
"3600"
],
"SegmentMinimumFilter": [
"50"
],
"StandardDeviationSamples": [
"20"
],
"StandardDeviationMultiplier": [
"1.96"
],
"UseStandardDeviationFilter": [
"true"
],
"IsActive": [
"true"
]
}
]
}
}
Мне нужно игнорировать "SegmentType":["2"]
сегменты и извлечь SegmentID
, SegmentName
, BeginningDcuID
, EndingDcuID
и SegmentLength
из сегментов типа 1, где IsActive
равно true
.
Я могу перечислить файл с jq "."
, но любая попытка других операций с jq завершится неудачно, обычно с сообщением:
'jq: error: синтаксическая ошибка, неожиданный' ['(проблемы с цитированием оболочки Unix?) В строке 1:'
Любые предложения по изменению синтаксиса jq или xml2js
изменениям параметров для этой работы были бы чрезвычайно полезны.