다음 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)'