Giter Site home page Giter Site logo

kiss-json's People

Contributors

bogdanthegeek avatar

Stargazers

 avatar

Watchers

 avatar  avatar

kiss-json's Issues

Add Floating Point Support

Prototypes:

void kJSON_InsertFloat(kjson_t *const jsonHandle, const char *const key, const double value, const size_t precision);
void kJSON_InsertArrayFloat(kjson_t *const jsonHandle, const char *const key, const double* const array, const size_t size, const size_t precision);

Use precision parameter to decide decimal places.

Define float/double type possibly?

Disable with compilation flag for targets without a Floating point unit.

Fix Warnings

kJSON.c:111:22: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
      size_t bytes = InsertString(jsonHandle->tail, key, value);
             ~~~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kJSON.c:126:22: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
      size_t bytes = InsertNumber(jsonHandle->tail, key, value);
             ~~~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kJSON.c:141:22: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
      size_t bytes = InsertUnsignedNumber(jsonHandle->tail, key, value);
             ~~~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kJSON.c:156:22: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
      size_t bytes = InsertBoolean(jsonHandle->tail, key, value);
             ~~~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kJSON.c:171:22: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
      size_t bytes = InsertArrayNumber(jsonHandle->tail, key, array, size, eSigned);
             ~~~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kJSON.c:186:22: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
      size_t bytes = InsertArrayNumber(jsonHandle->tail, key, array, size, eUnsigned);
             ~~~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kJSON.c:201:22: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
      size_t bytes = InsertArrayString(jsonHandle->tail, key, array, size);
             ~~~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kJSON.c:218:19: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
   size_t bytes = InitRoot(jsonHandle->tail);
          ~~~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~
kJSON.c:232:24: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
   jsonHandle->size += trim;
                    ~~ ^~~~
kJSON.c:241:22: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
      size_t bytes = EnterObject(jsonHandle->tail, key);
             ~~~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kJSON.c:244:69: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
      jsonHandle->size += strlen(jsonHandle->newLine) + jsonHandle->depth + (char_size(OBJECT_END) - 1);
                                                      ~ ~~~~~~~~~~~~^~~~~
kJSON.c:265:66: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
   jsonHandle->size -= strlen(jsonHandle->newLine) + jsonHandle->depth;
                                                   ~ ~~~~~~~~~~~~^~~~~
kJSON.c:276:15: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
   return end - start;
   ~~~~~~ ~~~~^~~~~~~
kJSON.c:284:15: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
   return end - start;
   ~~~~~~ ~~~~^~~~~~~
kJSON.c:292:15: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
   return end - start;
   ~~~~~~ ~~~~^~~~~~~
kJSON.c:300:15: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
   return end - start;
   ~~~~~~ ~~~~^~~~~~~
kJSON.c:322:15: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
   return end - start;
   ~~~~~~ ~~~~^~~~~~~
kJSON.c:336:15: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
   return end - start;
   ~~~~~~ ~~~~^~~~~~~
kJSON.c:344:15: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
   return end - start;
   ~~~~~~ ~~~~^~~~~~~
kJSON.c:355:15: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
   return end - start;
   ~~~~~~ ~~~~^~~~~~~
kJSON.c:364:15: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
   return end - start;
   ~~~~~~ ~~~~^~~~~~~
kJSON.c:372:15: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
   return end - start;
   ~~~~~~ ~~~~^~~~~~~
kJSON.c:380:15: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
   return end - start;
   ~~~~~~ ~~~~^~~~~~~
kJSON.c:408:19: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
   size_t bytes = InsertDepth(jsonHandle->tail, jsonHandle->newLine, jsonHandle->depth);
          ~~~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kJSON.c:443:60: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
   size_t size = strlen(jsonHandle->newLine) + jsonHandle->depth + strlen(key) + strlen(value) + char_size(STRING) - char_size("%s") - char_size("%s");
                                             ~ ~~~~~~~~~~~~^~~~~
kJSON.c:449:23: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
   size_t valueSize = GetNumDigits(value, type);
          ~~~~~~~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~
kJSON.c:450:60: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
   size_t size = strlen(jsonHandle->newLine) + jsonHandle->depth + strlen(key) + valueSize + char_size(NUMBER) - char_size("%s") - char_size("%d");
                                             ~ ~~~~~~~~~~~~^~~~~
kJSON.c:457:60: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
   size_t size = strlen(jsonHandle->newLine) + jsonHandle->depth + strlen(key) + valueSize + char_size(BOOLEAN) - char_size("%s") - char_size("%s");
                                             ~ ~~~~~~~~~~~~^~~~~
kJSON.c:463:61: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
   size_t total = strlen(jsonHandle->newLine) + jsonHandle->depth + strlen(key) + char_size(ARRAY_KEY) - char_size("%s");
                                              ~ ~~~~~~~~~~~~^~~~~
kJSON.c:470:22: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
         valueSize = GetNumDigits(&num, type);
                   ~ ^~~~~~~~~~~~~~~~~~~~~~~~
kJSON.c:475:22: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
         valueSize = GetNumDigits(&num, type);
                   ~ ^~~~~~~~~~~~~~~~~~~~~~~~
kJSON.c:486:61: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
   size_t total = strlen(jsonHandle->newLine) + jsonHandle->depth + strlen(key) + char_size(ARRAY_KEY) - char_size("%s");
                                              ~ ~~~~~~~~~~~~^~~~~
kJSON.c:499:60: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
   size_t size = strlen(jsonHandle->newLine) + jsonHandle->depth + strlen(key) + char_size(OBJECT_KEY) - char_size("%s");
                                             ~ ~~~~~~~~~~~~^~~~~
kJSON.c:500:54: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
   size += strlen(jsonHandle->newLine) + jsonHandle->depth + (char_size(OBJECT_END) - 1); // Closing bracket
                                       ~ ~~~~~~~~~~~~^~~~~
34 warnings generated.

Add Support for Generic Arrays

Similar implementation to kJSON_EnterObject().

void kJSON_EnterArray(kjson_t *const jsonHandle, const char *const key);
void kJSON_ExitArray(kjson_t *const jsonHandle);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.