diff options
author | Joshua Allen <axlecrusher@gmail.com> | 2017-02-26 10:13:31 -0500 |
---|---|---|
committer | Joshua Allen <axlecrusher@gmail.com> | 2017-02-26 10:13:31 -0500 |
commit | cab4ee6f89a661190b2bd80c30e42d5f45614f20 (patch) | |
tree | f7c27e29c1486ab28020eee2a61e935753e37d23 /redist | |
parent | 373ea323ce2d37b45d438cbe7299365b32240f04 (diff) | |
download | libsurvive-cab4ee6f89a661190b2bd80c30e42d5f45614f20.tar.gz libsurvive-cab4ee6f89a661190b2bd80c30e42d5f45614f20.tar.bz2 |
json helpers for writing
Diffstat (limited to 'redist')
-rw-r--r-- | redist/json_helpers.c | 63 | ||||
-rw-r--r-- | redist/json_helpers.h | 14 |
2 files changed, 77 insertions, 0 deletions
diff --git a/redist/json_helpers.c b/redist/json_helpers.c new file mode 100644 index 0000000..e96e873 --- /dev/null +++ b/redist/json_helpers.c @@ -0,0 +1,63 @@ +// (C) 2017 <>< Joshua Allen, Under MIT/x11 License. + +#define _GNU_SOURCE + +#include <stdio.h> +#include <string.h> +#include "json_helpers.h" + +void json_write_float_array(FILE* f, const char* tag, float* v, uint8_t count) { + uint8_t i = 0; + char * str1 = NULL; + char * str2 = NULL; + asprintf(&str1,"\"%s\":[", tag); + + for (i=0;i<count;++i) { + if (i<(count-1)) { + asprintf(&str2, "%s\"%f\",", str1,v[i]); + } else { + asprintf(&str2, "%s\"%f\"", str1,v[i]); + } + free(str1); + str1=str2; + str2=NULL; + } + asprintf(&str2, "%s]\n", str1,v[i]); + fputs(str2,f); + free(str1); + free(str2); +} + +void json_write_double_array(FILE* f, const char* tag, double* v, uint8_t count) { + uint8_t i = 0; + char * str1 = NULL; + char * str2 = NULL; + asprintf(&str1,"\"%s\":[", tag); + + for (i=0;i<count;++i) { + if (i<(count-1)) { + asprintf(&str2, "%s\"%f\",", str1,v[i]); + } else { + asprintf(&str2, "%s\"%f\"", str1,v[i]); + } + free(str1); + str1=str2; + str2=NULL; + } + asprintf(&str2, "%s]\n", str1,v[i]); + fputs(str2,f); + free(str1); + free(str2); +} + +void json_write_uint32(FILE* f, const char* tag, uint32_t v) { + fprintf(f, "\"%s\":\"%d\"\n", tag, v); +} + +void json_write_float(FILE* f, const char* tag, float v) { + fprintf(f, "\"%s\":\"%f\"\n", tag, v); +} + +void json_write_str(FILE* f, const char* tag, const char* v) { + fprintf(f, "\"%s\":\"%s\"\n", tag, v); +}
\ No newline at end of file diff --git a/redist/json_helpers.h b/redist/json_helpers.h new file mode 100644 index 0000000..8d6eb64 --- /dev/null +++ b/redist/json_helpers.h @@ -0,0 +1,14 @@ +// (C) 2017 <>< Joshua Allen, Under MIT/x11 License. + +#ifndef JSON_HELPERS_H +#define JSON_HELPERS_H + +#include <stdint.h> + +void json_write_float_array(FILE* f, const char* tag, float* v, uint8_t count); +void json_write_double_array(FILE* f, const char* tag, double* v, uint8_t count); +void json_write_uint32(FILE* f, const char* tag, uint32_t v); +void json_write_float(FILE* f, const char* tag, float v); +void json_write_str(FILE* f, const char* tag, const char* v); + +#endif
\ No newline at end of file |