--- a/crates/jrsonnet-evaluator/src/integrations/serde.rs +++ b/crates/jrsonnet-evaluator/src/integrations/serde.rs @@ -161,7 +161,14 @@ Val::Bool(v) => serializer.serialize_bool(*v), Val::Null => serializer.serialize_none(), Val::Str(s) => serializer.serialize_str(&s.clone().into_flat()), - Val::Num(n) => serializer.serialize_f64(*n), + Val::Num(n) => { + if n.fract() != 0.0 { + serializer.serialize_f64(*n) + } else { + let n = *n as i64; + serializer.serialize_i64(n) + } + } #[cfg(feature = "exp-bigint")] Val::BigInt(b) => b.serialize(serializer), Val::Arr(arr) => {