diff --git a/scripts/base/utils/json.bro b/scripts/base/utils/json.bro index 5b66f3ad02..05dcff1e27 100644 --- a/scripts/base/utils/json.bro +++ b/scripts/base/utils/json.bro @@ -39,10 +39,11 @@ function to_json(v: any, only_loggable: bool &default=F, field_escape_pattern: p case "count": fallthrough; case "time": - fallthrough; - case "double": return cat(v); + case "double": + return fmt("%.16g", v); + case "bool": local bval: bool = v; return bval ? "true" : "false"; diff --git a/testing/btest/Baseline/scripts.base.utils.json/output b/testing/btest/Baseline/scripts.base.utils.json/output index f7a16cb2bb..43513e43f9 100644 --- a/testing/btest/Baseline/scripts.base.utils.json/output +++ b/testing/btest/Baseline/scripts.base.utils.json/output @@ -1,10 +1,10 @@ true 123 -999 -1.123457 --1.123456e+308 -0 -1.0 +3.14 +-1.23456789e+308 +9e-308 +1480788576.868945 "-12.0 hrs" "hello" "" diff --git a/testing/btest/scripts/base/utils/json.test b/testing/btest/scripts/base/utils/json.test index 369ba0ebb7..264151136a 100644 --- a/testing/btest/scripts/base/utils/json.test +++ b/testing/btest/scripts/base/utils/json.test @@ -30,14 +30,14 @@ event bro_init() local i: int = -999; print to_json(i); - local d1: double = 1.123456789; - local d2: double = -1.123456e308; - local d3: double = 9.876543e-308; + local d1: double = 3.14; + local d2: double = -1.23456789e308; + local d3: double = 9e-308; print to_json(d1); print to_json(d2); print to_json(d3); - local t: time = double_to_time(1.0); + local t: time = double_to_time(1480788576.868945); print to_json(t); local ti: interval = -12hr;