Commit Graph

8 Commits

Author SHA1 Message Date
borne ac1e4b1368 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
mamingshuai a006830083 update openharmony 1.0.1 2021-03-11 20:34:23 +08:00
wenjun 2c251595b3 add OpenHarmony 1.0 baseline 2020-09-09 09:26:41 +08:00
Alanscut 02445f9e87 update testcase, fixes #433 2020-04-02 16:24:10 +08:00
Zach Hindes 4ddd0a8ffb Support default __stdcall calling convention on tests as well 2018-09-12 15:32:30 -05:00
Max Bruckner 03ba72faec cJSON_Compare: Fix comparison of objects
It did consider two arrays equal if one is a subset of te other one,
which is incorrect.

See #180
2017-06-14 17:48:56 +02:00
Max Bruckner 569aa060c6 cJSON_Compare: Fix comparison of arrays
It did consider two arrays equal if one is a prefix of the other one,
which is incorrect.

See #180
2017-06-14 17:48:56 +02:00
Max Bruckner 6ac896d8d2 cJSON_Compare: New function to compare json 2017-04-08 17:57:36 +02:00