Commit Graph

146 Commits

Author SHA1 Message Date
borne 87569a8587 feat: add int64 support
Offering: Open Source Institute

This commit adds int64 support for cjson. To enable int64, you need to define the macro ENABLE_INT64. To make it more clear, you need to build cjson like this if you are using makefile:

mkdir build
cd build
cmake -DENABLE_INT64=ON ..
make

This implementation changed the type of valueint in struct cJSON: from int to long long(int64), and added a new flag cJSON_IsInt64.
For a int64 cJSON item, the value of item->type would be cJSON_Number | cJSON_IsInt64.

The existing functions parse_number and print_number can handle int64 now.

Considering we have added a new type cJSON_IsInt64, some new functions have been added:
CJSON_PUBLIC(long long *) cJSON_GetInt64NumberValue(cJSON * const item)
CJSON_PUBLIC(cJSON_bool) cJSON_IsInt64Number(const cJSON * const item)
CJSON_PUBLIC(cJSON *) cJSON_CreateInt64Number(long long integer)
CJSON_PUBLIC(cJSON*) cJSON_AddInt64NumberToObject(cJSON * const object, const char * const name, const long long integer)
CJSON_PUBLIC(long long) cJSON_SetInt64NumberValue(cJSON * const object, const long long integer)

And some existing functions are also adjusted for int64, including parse_number, cJSON_SetNumberHelper, print_number, cJSON_CreateNumber, cJSON_Compare and compare_json(in cJSON_Utils).

Besides the code changes, we have also added some testcases for int64.
These tests will run if ENABLE_INT64 is turned on.

Ref:PeterAlfredLee
https://github.com/DaveGamble/cJSON/pull/689

Signed-off-by: borne <bo.lu@huawei.com>
2024-06-21 13:05:42 +08:00
w00845693 f1c9937639 Description: updata user guide
IssueNo: https://gitee.com/openharmony/third_party_cJSON/issues/I8JGFE
Feature or Bugfix: Feature
Binary Source:No
Signed-off-by: wyk99 <wangyuekai1@huawei.com>
2023-11-27 09:46:09 +08:00
jiadexiang 6b94bd0906 Description: update version to v1.7.15
IssueNo:I5CE1Z
Feature or Bugfix: Feature
Binary Source:No

Signed-off-by: jiadexiang <jiadexiang@huawei.com>
2022-06-15 15:04:36 +08:00
mamingshuai 8256a0a332 update openharmony 1.0.1 2021-03-11 20:34:23 +08:00
wenjun 03bfdbbcdf add OpenHarmony 1.0 baseline 2020-09-09 09:26:41 +08:00
Alanscut 8943c73345 comparing double value with DBL_EPSILON 2020-04-02 16:02:24 +08:00
Alanscut d92c0de7e8 fix encode_string_as_pointer 2020-03-18 16:04:58 +08:00
Alanscut fa8b454552 correct mistake 2020-01-16 17:10:52 +08:00
Alanscut 4e3335618f improve compare_double 2019-12-09 10:36:45 +08:00
ChenYuan ea3a6dcd69 Update cJSON_Utils.c
fix typo
2019-12-07 20:24:07 +08:00
Alanscut 51f6b4c07e Merge branch 'master' into master 2019-12-06 15:14:26 +08:00
Alanscut 500a9db81b fix memory leak mentioned in issue 414 2019-12-05 11:05:07 +08:00
Paweł Malowany c9e8a68b00 Fix clang -Wfloat-equal warning 2019-06-10 11:37:03 +02:00
raiden00pl 359567fdde Undef true and false first also for cJSON_Utils.c 2019-04-28 10:33:44 +02:00
Max Bruckner 563d861f92 cJSON_Utils: sort_lists: Properly split the lists
Since `prev` is not used anymore after that by the algorithm it should
have been fine anyways, still splitting it correctly in the first place
is probably a good idea.
Thanks @andysCaplin for the fix!
2018-12-20 18:12:23 +01:00
yuta-oxo eaec82c3c5 fix bug: sort_list() returns strange results 2018-12-12 15:09:53 +09:00
Bob Kocisko d26a42af8d json patch: adding to a subfield of a non-object now fails as expected 2018-03-22 11:10:29 -04:00
Max Bruckner 0d675cb048 MSVC: Disable warning about single line comments in system headers 2017-06-28 17:28:50 +02:00
Max Bruckner 217ab02612 cJSON_Utils: Guard gcc pragmas with a check for __GCC__ 2017-06-28 17:28:50 +02:00
Max Bruckner e872d40223 MSVC: Disable deprecation warnings for C89 functions
C89 sadly doesn't provide safe alternatives for strcpy, sprintf and the
like.
2017-06-28 17:28:50 +02:00
Max Bruckner 93227319f0 handle null pointers: cJSONUtils_GeneratePatchesCaseSensitive 2017-06-28 16:00:59 +02:00
Max Bruckner f0c1b896ba handle null pointers: cJSONUtils_GeneratePatches 2017-06-28 16:00:41 +02:00
Max Bruckner 2d252ae595 handle null pointer: compose_patch 2017-06-28 16:00:14 +02:00
Max Bruckner c46c4d1559 handle null pointer: sort_object 2017-06-28 15:59:53 +02:00
Max Bruckner 1af74c8cc1 handle null pointer: get_item_from_pointer 2017-06-28 15:58:58 +02:00
Max Bruckner 9bdf19fde1 handle null pointer: cJSONUtils_FindPointerFromObjectTo 2017-06-28 15:58:22 +02:00
Max Bruckner b9cc911831 cJSON_Utils: Fix case sensitivity handling when adding to object 2017-06-14 17:48:56 +02:00
Max Bruckner 9abe75e072 cJSON_Utils: Fix get_item_from_pointer
Accessing nested arrays didn't work as intended.
2017-06-14 17:48:55 +02:00
crhackos c0088e1ebe free() to cJSON_free() 2017-05-06 12:38:10 +08:00
Max Bruckner 66f75619d9 Add cJSONUtils_MergePatchCaseSensitive 2017-05-02 01:30:58 +02:00
Max Bruckner 7f22948eec Add cJSONUtils_SortObjectCaseSensitive 2017-05-02 01:30:58 +02:00
Max Bruckner b674519695 Add cJSONUtils_GenerateMergePatchCaseSensitive 2017-05-02 01:30:58 +02:00
Max Bruckner 94057fb069 Add cJSONUtils_ApplyPatchesCaseSensitive 2017-05-02 01:30:58 +02:00
Max Bruckner 3bf2913634 Add cJSONUtils_GeneratePatchesCaseSensitive 2017-05-02 01:30:58 +02:00
Max Bruckner cd4d7b9b6e Add cJSONUtils_GetPointerCaseSensitive 2017-05-02 01:30:58 +02:00
Max Bruckner 73823c4b6d Add get_object_item: configurable case_sensitivity 2017-05-02 01:30:58 +02:00
Max Bruckner 0aaef1a8fa sort_list: configurable case sensitivity 2017-05-02 01:30:58 +02:00
Max Bruckner e88be8681d create_patches: Configurable case sensitivity 2017-05-02 01:30:58 +02:00
Max Bruckner 222686513e apply_patch: configurable case sensitivity 2017-05-02 01:30:58 +02:00
Max Bruckner 62b08f1336 compare_json: configurable case sensitivity 2017-05-02 01:30:58 +02:00
Max Bruckner 7de847eeea detach_path: Configurable case sensitivity 2017-05-02 01:30:58 +02:00
Max Bruckner af9c76e37e Add get_item_from_pointer: Configurable case sensitivity 2017-05-02 01:30:58 +02:00
Max Bruckner 2f33e8ec9b Add compare_pointers: Configurable case sensitivity 2017-05-02 01:30:58 +02:00
Max Bruckner 30906a01c0 another compare_strings fix 2017-05-02 01:30:58 +02:00
Max Bruckner eb017abe72 fix update fix 2017-05-02 01:30:58 +02:00
Max Bruckner 487a8b76a1 fix another compare_strings 2017-05-02 01:30:58 +02:00
Max Bruckner 1d85450883 fix configurable compare_stirings 2017-05-02 01:30:58 +02:00
Max Bruckner 2616db9e92 Add compare_strings: configurable case_sensitivity 2017-05-02 01:30:58 +02:00
Max Bruckner 23cbb173d4 cJSONUtils_SortList -> sort_list 2017-05-02 01:30:58 +02:00
Max Bruckner a29c468b68 cJSON_CompareToPatch -> create_patches 2017-05-02 01:30:58 +02:00