author | Chris Buben <cbuben@eventlogic.com> | |
Thu, 4 Feb 2010 08:52:30 +0000 (00:52 -0800) | ||
committer | Florian Forster <octo@huhu.verplant.org> | |
Thu, 4 Feb 2010 09:20:24 +0000 (10:20 +0100) | ||
commit | fdb6736cf312cd91bb7fcfc71393e6525c09cec8 | |
tree | d200523a41345f241c4008e624107fcc93195c9f | tree | snapshot |
parent | a1a04f130d16c8a0aacfeb2734af51f94734176b | commit | diff |
utils_format_json: serialize nan and inf as null, as per JSON spec
I'm deserializing JSON output from the write_http plugin using ruby-yajl.
yajl was puking on the literal value nan encoded in the output.
[
{
"plugin": "memcached",
"interval": 10,
"host": "myhost",
"values": [
nan,
5
],
"time": 1265239180,
"plugin_instance": "",
"type_instance": "",
"type": "ps_count"
}
]
After some research, ECMA-262 15.12.3 says nan and infinite numbers
aren't representable in JSON and should be serialized as the string
null. I figure any strictly-compliant JSON parser will fail on parsing
JSON data containing nans as emitted by collectd's utils_format_json
routines.
This patch makes collectd's JSON output compliant in the case of
infinite or nan gauge values.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
I'm deserializing JSON output from the write_http plugin using ruby-yajl.
yajl was puking on the literal value nan encoded in the output.
[
{
"plugin": "memcached",
"interval": 10,
"host": "myhost",
"values": [
nan,
5
],
"time": 1265239180,
"plugin_instance": "",
"type_instance": "",
"type": "ps_count"
}
]
After some research, ECMA-262 15.12.3 says nan and infinite numbers
aren't representable in JSON and should be serialized as the string
null. I figure any strictly-compliant JSON parser will fail on parsing
JSON data containing nans as emitted by collectd's utils_format_json
routines.
This patch makes collectd's JSON output compliant in the case of
infinite or nan gauge values.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
src/utils_format_json.c | diff | blob | history |