次の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)'