summaryrefslogtreecommitdiffstats
path: root/src/elem_to_json.cc
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/elem_to_json.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/elem_to_json.cc b/src/elem_to_json.cc
index 4b04dfb..fc05424 100644
--- a/src/elem_to_json.cc
+++ b/src/elem_to_json.cc
@@ -27,8 +27,6 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include <algorithm>
-
#include "elem_to_json.hh"
#include "base/itertools.hh"
@@ -43,7 +41,11 @@ element_to_json(yajl_gen gen, data_parser& dp, const data_parser::element& elem)
switch (elem.value_token()) {
case DT_NUMBER: {
- yajl_gen_number(gen, value_str, value_len);
+ auto leading_plus = value_str[0] == '+';
+
+ yajl_gen_number(gen,
+ leading_plus ? value_str + 1 : value_str,
+ leading_plus ? value_len - 1 : value_len);
break;
}
case DNT_GROUP: {
@@ -51,6 +53,11 @@ element_to_json(yajl_gen gen, data_parser& dp, const data_parser::element& elem)
gen, dp, elem.get_value_elem().e_sub_elements, false);
break;
}
+ case DNT_MEASUREMENT: {
+ elements_to_json(
+ gen, dp, elem.get_value_elem().e_sub_elements, false);
+ break;
+ }
case DNT_PAIR: {
const data_parser::element& pair_elem = elem.get_pair_elem();
const auto key_str