밀러가 데이터를 문자열로 읽고 JSON으로 변환하도록 강제

밀러가 데이터를 문자열로 읽고 JSON으로 변환하도록 강제

다음 MWE에서는

echo x="1e2" | mlr --ojson cat

내 목표는 밀러가 객체를 포함하는 단일 요소 JSON 배열을 생성하도록 하는 것입니다.

{"x": "1e2"}

(배열 내에서) 반환된 실제 객체는 다음과 같습니다.

{"x": 1e2}

여기서 값은 숫자로 처리되는데, 이는 구문 분석의 결과인 것 같습니다. 숫자 대신 문자열 값을 갖는 JSON 객체를 생성하도록 밀러에게 어떻게 지시하나요? (MWE에서 "1e2" 주위에 따옴표를 붙인 이유는 이러한 의도를 강조하기 위한 것입니다.)

답변1

Miller 6에서는 다음을 사용할 수 있습니다.-S배너, Miller가 데이터를 문자열로 처리하도록 강제합니다.

echo x="1e2" | mlr --ojson -S cat

얻기 위해

[
{
  "x": "1e2"
}
]

아니면 string함수를 사용하여 캐스팅 할 수도 있습니다.

echo x="1e2" | mlr --ojson put '$x=string($x)'

관련 정보