mirror of
https://github.com/json-c/json-c.git
synced 2026-04-05 05:19:07 +08:00
modify the json_object, replace c_int64/c_uint64 with struct{union{int64, uint64},...}
This commit is contained in:
152
json_object.c
152
json_object.c
@@ -51,7 +51,6 @@ static json_object_to_json_string_fn json_object_object_to_json_string;
|
|||||||
static json_object_to_json_string_fn json_object_boolean_to_json_string;
|
static json_object_to_json_string_fn json_object_boolean_to_json_string;
|
||||||
static json_object_to_json_string_fn json_object_double_to_json_string_default;
|
static json_object_to_json_string_fn json_object_double_to_json_string_default;
|
||||||
static json_object_to_json_string_fn json_object_int_to_json_string;
|
static json_object_to_json_string_fn json_object_int_to_json_string;
|
||||||
static json_object_to_json_string_fn json_object_uint_to_json_string;
|
|
||||||
static json_object_to_json_string_fn json_object_string_to_json_string;
|
static json_object_to_json_string_fn json_object_string_to_json_string;
|
||||||
static json_object_to_json_string_fn json_object_array_to_json_string;
|
static json_object_to_json_string_fn json_object_array_to_json_string;
|
||||||
static json_object_to_json_string_fn _json_object_userdata_to_json_string;
|
static json_object_to_json_string_fn _json_object_userdata_to_json_string;
|
||||||
@@ -303,9 +302,6 @@ void json_object_set_serializer(json_object *jso,
|
|||||||
case json_type_int:
|
case json_type_int:
|
||||||
jso->_to_json_string = &json_object_int_to_json_string;
|
jso->_to_json_string = &json_object_int_to_json_string;
|
||||||
break;
|
break;
|
||||||
case json_type_uint:
|
|
||||||
jso->_to_json_string = &json_object_uint_to_json_string;
|
|
||||||
break;
|
|
||||||
case json_type_object:
|
case json_type_object:
|
||||||
jso->_to_json_string = &json_object_object_to_json_string;
|
jso->_to_json_string = &json_object_object_to_json_string;
|
||||||
break;
|
break;
|
||||||
@@ -595,9 +591,14 @@ json_bool json_object_get_boolean(const struct json_object *jso)
|
|||||||
case json_type_boolean:
|
case json_type_boolean:
|
||||||
return jso->o.c_boolean;
|
return jso->o.c_boolean;
|
||||||
case json_type_int:
|
case json_type_int:
|
||||||
return (jso->o.c_int64 != 0);
|
switch(jso->o.c_int.cint_type) {
|
||||||
case json_type_uint:
|
case json_object_int_type_int64:
|
||||||
return (jso->o.c_uint64 != 0);
|
return (jso->o.c_int.cint.c_int64 != 0);
|
||||||
|
case json_object_int_type_uint64:
|
||||||
|
return (jso->o.c_int.cint.c_uint64 != 0);
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
case json_type_double:
|
case json_type_double:
|
||||||
return (jso->o.c_double != 0);
|
return (jso->o.c_double != 0);
|
||||||
case json_type_string:
|
case json_type_string:
|
||||||
@@ -624,18 +625,10 @@ static int json_object_int_to_json_string(struct json_object* jso,
|
|||||||
{
|
{
|
||||||
/* room for 19 digits, the sign char, and a null term */
|
/* room for 19 digits, the sign char, and a null term */
|
||||||
char sbuf[21];
|
char sbuf[21];
|
||||||
snprintf(sbuf, sizeof(sbuf), "%" PRId64, jso->o.c_int64);
|
if (jso->o.c_int.cint_type == json_object_int_type_int64)
|
||||||
return printbuf_memappend (pb, sbuf, strlen(sbuf));
|
snprintf(sbuf, sizeof(sbuf), "%" PRId64, jso->o.c_int.cint.c_int64);
|
||||||
}
|
else if (jso->o.c_int.cint_type == json_object_int_type_uint64)
|
||||||
|
snprintf(sbuf, sizeof(sbuf), "%" PRIu64, jso->o.c_int.cint.c_uint64);
|
||||||
static int json_object_uint_to_json_string(struct json_object* jso,
|
|
||||||
struct printbuf *pb,
|
|
||||||
int level,
|
|
||||||
int flags)
|
|
||||||
{
|
|
||||||
/* room for 20 digits, and a null term */
|
|
||||||
char sbuf[21];
|
|
||||||
snprintf(sbuf, sizeof(sbuf), "%" PRIu64, jso->o.c_uint64);
|
|
||||||
return printbuf_memappend (pb, sbuf, strlen(sbuf));
|
return printbuf_memappend (pb, sbuf, strlen(sbuf));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -645,7 +638,8 @@ struct json_object* json_object_new_int(int32_t i)
|
|||||||
if (!jso)
|
if (!jso)
|
||||||
return NULL;
|
return NULL;
|
||||||
jso->_to_json_string = &json_object_int_to_json_string;
|
jso->_to_json_string = &json_object_int_to_json_string;
|
||||||
jso->o.c_int64 = i;
|
jso->o.c_int.cint.c_int64 = i;
|
||||||
|
jso->o.c_int.cint_type = json_object_int_type_int64;
|
||||||
return jso;
|
return jso;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -657,7 +651,13 @@ int32_t json_object_get_int(const struct json_object *jso)
|
|||||||
if(!jso) return 0;
|
if(!jso) return 0;
|
||||||
|
|
||||||
o_type = jso->o_type;
|
o_type = jso->o_type;
|
||||||
cint64 = jso->o.c_int64;
|
if (jso->o.c_int.cint_type == json_object_int_type_int64) {
|
||||||
|
cint64 = jso->o.c_int.cint.c_int64;
|
||||||
|
} else if (jso->o.c_int.cint_type == json_object_int_type_uint64) {
|
||||||
|
if (jso->o.c_int.cint.c_uint64 >= INT64_MAX)
|
||||||
|
cint64 = INT64_MAX;
|
||||||
|
cint64 = (int64_t)jso->o.c_int.cint.c_uint64;
|
||||||
|
}
|
||||||
|
|
||||||
if (o_type == json_type_string)
|
if (o_type == json_type_string)
|
||||||
{
|
{
|
||||||
@@ -678,10 +678,6 @@ int32_t json_object_get_int(const struct json_object *jso)
|
|||||||
if (cint64 >= INT32_MAX)
|
if (cint64 >= INT32_MAX)
|
||||||
return INT32_MAX;
|
return INT32_MAX;
|
||||||
return (int32_t) cint64;
|
return (int32_t) cint64;
|
||||||
case json_type_uint:
|
|
||||||
if (jso->o.c_uint64 >= INT32_MAX)
|
|
||||||
return INT32_MAX;
|
|
||||||
return (int32_t)jso->o.c_uint64;
|
|
||||||
case json_type_double:
|
case json_type_double:
|
||||||
if (jso->o.c_double <= INT32_MIN)
|
if (jso->o.c_double <= INT32_MIN)
|
||||||
return INT32_MIN;
|
return INT32_MIN;
|
||||||
@@ -696,9 +692,9 @@ int32_t json_object_get_int(const struct json_object *jso)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int json_object_set_int(struct json_object *jso,int new_value){
|
int json_object_set_int(struct json_object *jso,int new_value){
|
||||||
if (!jso || jso->o_type!=json_type_int)
|
if (!jso || jso->o_type!=json_type_int || jso->o.c_int.cint_type != json_object_int_type_int64)
|
||||||
return 0;
|
return 0;
|
||||||
jso->o.c_int64=new_value;
|
jso->o.c_int.cint.c_int64=new_value;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -708,17 +704,19 @@ struct json_object* json_object_new_int64(int64_t i)
|
|||||||
if (!jso)
|
if (!jso)
|
||||||
return NULL;
|
return NULL;
|
||||||
jso->_to_json_string = &json_object_int_to_json_string;
|
jso->_to_json_string = &json_object_int_to_json_string;
|
||||||
jso->o.c_int64 = i;
|
jso->o.c_int.cint.c_int64 = i;
|
||||||
|
jso->o.c_int.cint_type = json_object_int_type_int64;
|
||||||
return jso;
|
return jso;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct json_object* json_object_new_uint64(uint64_t i)
|
struct json_object* json_object_new_uint64(uint64_t i)
|
||||||
{
|
{
|
||||||
struct json_object *jso = json_object_new(json_type_uint);
|
struct json_object *jso = json_object_new(json_type_int);
|
||||||
if (!jso)
|
if (!jso)
|
||||||
return NULL;
|
return NULL;
|
||||||
jso->_to_json_string = &json_object_uint_to_json_string;
|
jso->_to_json_string = &json_object_int_to_json_string;
|
||||||
jso->o.c_uint64 = i;
|
jso->o.c_int.cint.c_uint64 = i;
|
||||||
|
jso->o.c_int.cint_type = json_object_int_type_uint64;
|
||||||
return jso;
|
return jso;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -731,11 +729,16 @@ int64_t json_object_get_int64(const struct json_object *jso)
|
|||||||
switch(jso->o_type)
|
switch(jso->o_type)
|
||||||
{
|
{
|
||||||
case json_type_int:
|
case json_type_int:
|
||||||
return jso->o.c_int64;
|
switch(jso->o.c_int.cint_type) {
|
||||||
case json_type_uint:
|
case json_object_int_type_int64:
|
||||||
if (jso->o.c_uint64 >= INT64_MAX)
|
return jso->o.c_int.cint.c_int64;
|
||||||
return INT64_MAX;
|
case json_object_int_type_uint64:
|
||||||
return (int64_t)jso->o.c_uint64;
|
if (jso->o.c_int.cint.c_uint64 >= INT64_MAX)
|
||||||
|
return INT64_MAX;
|
||||||
|
return (int64_t)jso->o.c_int.cint.c_uint64;
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
case json_type_double:
|
case json_type_double:
|
||||||
// INT64_MAX can't be exactly represented as a double
|
// INT64_MAX can't be exactly represented as a double
|
||||||
// so cast to tell the compiler it's ok to round up.
|
// so cast to tell the compiler it's ok to round up.
|
||||||
@@ -764,11 +767,16 @@ uint64_t json_object_get_uint64(const struct json_object *jso)
|
|||||||
switch(jso->o_type)
|
switch(jso->o_type)
|
||||||
{
|
{
|
||||||
case json_type_int:
|
case json_type_int:
|
||||||
if (jso->o.c_int64 < 0)
|
switch(jso->o.c_int.cint_type) {
|
||||||
|
case json_object_int_type_int64:
|
||||||
|
if (jso->o.c_int.cint.c_int64 < 0)
|
||||||
|
return 0;
|
||||||
|
return (uint64_t)jso->o.c_int.cint.c_int64;
|
||||||
|
case json_object_int_type_uint64:
|
||||||
|
return jso->o.c_int.cint.c_uint64;
|
||||||
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
return (uint64_t)jso->o.c_int64;
|
}
|
||||||
case json_type_uint:
|
|
||||||
return jso->o.c_uint64;
|
|
||||||
case json_type_double:
|
case json_type_double:
|
||||||
// UINT64_MAX can't be exactly represented as a double
|
// UINT64_MAX can't be exactly represented as a double
|
||||||
// so cast to tell the compiler it's ok to round up.
|
// so cast to tell the compiler it's ok to round up.
|
||||||
@@ -789,39 +797,39 @@ uint64_t json_object_get_uint64(const struct json_object *jso)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int json_object_set_int64(struct json_object *jso,int64_t new_value){
|
int json_object_set_int64(struct json_object *jso,int64_t new_value){
|
||||||
if (!jso || jso->o_type!=json_type_int)
|
if (!jso || jso->o_type!=json_type_int || jso->o.c_int.cint_type != json_object_int_type_int64)
|
||||||
return 0;
|
return 0;
|
||||||
jso->o.c_int64=new_value;
|
jso->o.c_int.cint.c_int64=new_value;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int json_object_set_uint64(struct json_object *jso,uint64_t new_value){
|
int json_object_set_uint64(struct json_object *jso,uint64_t new_value){
|
||||||
if (!jso || jso->o_type!=json_type_uint)
|
if (!jso || jso->o_type!=json_type_int || jso->o.c_int.cint_type != json_object_int_type_uint64)
|
||||||
return 0;
|
return 0;
|
||||||
jso->o.c_uint64=new_value;
|
jso->o.c_int.cint.c_uint64=new_value;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int json_object_int_inc(struct json_object *jso, int64_t val) {
|
int json_object_int_inc(struct json_object *jso, int64_t val) {
|
||||||
if (!jso || jso->o_type != json_type_int)
|
if (!jso || jso->o_type != json_type_int || jso->o.c_int.cint_type != json_object_int_type_int64)
|
||||||
return 0;
|
return 0;
|
||||||
if (val > 0 && jso->o.c_int64 > INT64_MAX - val) {
|
if (val > 0 && jso->o.c_int.cint.c_int64 > INT64_MAX - val) {
|
||||||
jso->o.c_int64 = INT64_MAX;
|
jso->o.c_int.cint.c_int64 = INT64_MAX;
|
||||||
} else if (val < 0 && jso->o.c_int64 < INT64_MIN - val) {
|
} else if (val < 0 && jso->o.c_int.cint.c_int64 < INT64_MIN - val) {
|
||||||
jso->o.c_int64 = INT64_MIN;
|
jso->o.c_int.cint.c_int64 = INT64_MIN;
|
||||||
} else {
|
} else {
|
||||||
jso->o.c_int64 += val;
|
jso->o.c_int.cint.c_int64 += val;
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int json_object_uint_inc(struct json_object *jso, uint64_t val) {
|
int json_object_uint_inc(struct json_object *jso, uint64_t val) {
|
||||||
if (!jso || jso->o_type != json_type_uint)
|
if (!jso || jso->o_type != json_type_int || jso->o.c_int.cint_type != json_object_int_type_uint64)
|
||||||
return 0;
|
return 0;
|
||||||
if (jso->o.c_uint64 > UINT64_MAX - val) {
|
if (jso->o.c_int.cint.c_uint64 > UINT64_MAX - val) {
|
||||||
jso->o.c_uint64 = UINT64_MAX;
|
jso->o.c_int.cint.c_uint64 = UINT64_MAX;
|
||||||
} else {
|
} else {
|
||||||
jso->o.c_uint64 += val;
|
jso->o.c_int.cint.c_uint64 += val;
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -1047,9 +1055,14 @@ double json_object_get_double(const struct json_object *jso)
|
|||||||
case json_type_double:
|
case json_type_double:
|
||||||
return jso->o.c_double;
|
return jso->o.c_double;
|
||||||
case json_type_int:
|
case json_type_int:
|
||||||
return jso->o.c_int64;
|
switch(jso->o.c_int.cint_type) {
|
||||||
case json_type_uint:
|
case json_object_int_type_int64:
|
||||||
return jso->o.c_uint64;
|
return jso->o.c_int.cint.c_int64;
|
||||||
|
case json_object_int_type_uint64:
|
||||||
|
return jso->o.c_int.cint.c_uint64;
|
||||||
|
default:
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
case json_type_boolean:
|
case json_type_boolean:
|
||||||
return jso->o.c_boolean;
|
return jso->o.c_boolean;
|
||||||
case json_type_string:
|
case json_type_string:
|
||||||
@@ -1428,10 +1441,14 @@ int json_object_equal(struct json_object* jso1, struct json_object* jso2)
|
|||||||
return (jso1->o.c_double == jso2->o.c_double);
|
return (jso1->o.c_double == jso2->o.c_double);
|
||||||
|
|
||||||
case json_type_int:
|
case json_type_int:
|
||||||
return (jso1->o.c_int64 == jso2->o.c_int64);
|
if ((jso1->o.c_int.cint_type == json_object_int_type_int64)
|
||||||
|
&& (jso2->o.c_int.cint_type == json_object_int_type_int64))
|
||||||
case json_type_uint:
|
return (jso1->o.c_int.cint.c_int64 == jso2->o.c_int.cint.c_int64);
|
||||||
return (jso1->o.c_uint64 == jso2->o.c_uint64);
|
else if ((jso1->o.c_int.cint_type == json_object_int_type_uint64)
|
||||||
|
&& (jso2->o.c_int.cint_type == json_object_int_type_uint64))
|
||||||
|
return (jso1->o.c_int.cint.c_uint64 == jso2->o.c_int.cint.c_uint64);
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
|
|
||||||
case json_type_string:
|
case json_type_string:
|
||||||
return (jso1->o.c_string.len == jso2->o.c_string.len &&
|
return (jso1->o.c_string.len == jso2->o.c_string.len &&
|
||||||
@@ -1493,11 +1510,14 @@ int json_c_shallow_copy_default(json_object *src, json_object *parent, const cha
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case json_type_int:
|
case json_type_int:
|
||||||
*dst = json_object_new_int64(src->o.c_int64);
|
switch(src->o.c_int.cint_type) {
|
||||||
break;
|
case json_object_int_type_int64:
|
||||||
|
*dst = json_object_new_int64(src->o.c_int.cint.c_int64);
|
||||||
case json_type_uint:
|
break;
|
||||||
*dst = json_object_new_uint64(src->o.c_uint64);
|
case json_object_int_type_uint64:
|
||||||
|
*dst = json_object_new_uint64(src->o.c_int.cint.c_uint64);
|
||||||
|
break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case json_type_string:
|
case json_type_string:
|
||||||
|
|||||||
@@ -176,12 +176,17 @@ typedef enum json_type {
|
|||||||
json_type_boolean,
|
json_type_boolean,
|
||||||
json_type_double,
|
json_type_double,
|
||||||
json_type_int,
|
json_type_int,
|
||||||
json_type_uint,
|
|
||||||
json_type_object,
|
json_type_object,
|
||||||
json_type_array,
|
json_type_array,
|
||||||
json_type_string
|
json_type_string
|
||||||
} json_type;
|
} json_type;
|
||||||
|
|
||||||
|
/* json object int type, support extension*/
|
||||||
|
typedef enum json_object_int_type {
|
||||||
|
json_object_int_type_int64,
|
||||||
|
json_object_int_type_uint64
|
||||||
|
}json_object_int_type;
|
||||||
|
|
||||||
/* reference counting functions */
|
/* reference counting functions */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -211,7 +216,6 @@ JSON_EXPORT int json_object_put(struct json_object *obj);
|
|||||||
json_type_boolean,
|
json_type_boolean,
|
||||||
json_type_double,
|
json_type_double,
|
||||||
json_type_int,
|
json_type_int,
|
||||||
json_type_uint,
|
|
||||||
json_type_object,
|
json_type_object,
|
||||||
json_type_array,
|
json_type_array,
|
||||||
json_type_string
|
json_type_string
|
||||||
@@ -228,7 +232,6 @@ JSON_EXPORT int json_object_is_type(const struct json_object *obj, enum json_typ
|
|||||||
json_type_boolean,
|
json_type_boolean,
|
||||||
json_type_double,
|
json_type_double,
|
||||||
json_type_int,
|
json_type_int,
|
||||||
json_type_uint,
|
|
||||||
json_type_object,
|
json_type_object,
|
||||||
json_type_array,
|
json_type_array,
|
||||||
json_type_string
|
json_type_string
|
||||||
|
|||||||
@@ -34,8 +34,13 @@ struct json_object
|
|||||||
union data {
|
union data {
|
||||||
json_bool c_boolean;
|
json_bool c_boolean;
|
||||||
double c_double;
|
double c_double;
|
||||||
int64_t c_int64;
|
struct {
|
||||||
uint64_t c_uint64;
|
union {
|
||||||
|
int64_t c_int64;
|
||||||
|
uint64_t c_uint64;
|
||||||
|
} cint;
|
||||||
|
enum json_object_int_type cint_type;
|
||||||
|
} c_int;
|
||||||
struct lh_table *c_object;
|
struct lh_table *c_object;
|
||||||
struct array_list *c_array;
|
struct array_list *c_array;
|
||||||
struct {
|
struct {
|
||||||
|
|||||||
@@ -266,7 +266,6 @@ static const char* json_type_name[] = {
|
|||||||
"boolean",
|
"boolean",
|
||||||
"double",
|
"double",
|
||||||
"int",
|
"int",
|
||||||
"uint",
|
|
||||||
"object",
|
"object",
|
||||||
"array",
|
"array",
|
||||||
"string",
|
"string",
|
||||||
|
|||||||
@@ -57,7 +57,6 @@ static int _json_c_visit(json_object *jso, json_object *parent_jso,
|
|||||||
case json_type_boolean:
|
case json_type_boolean:
|
||||||
case json_type_double:
|
case json_type_double:
|
||||||
case json_type_int:
|
case json_type_int:
|
||||||
case json_type_uint:
|
|
||||||
case json_type_string:
|
case json_type_string:
|
||||||
// we already called userfunc above, move on to the next object
|
// we already called userfunc above, move on to the next object
|
||||||
return JSON_C_VISIT_RETURN_CONTINUE;
|
return JSON_C_VISIT_RETURN_CONTINUE;
|
||||||
|
|||||||
@@ -91,12 +91,11 @@ static void getit(struct json_object *new_obj, const char *field)
|
|||||||
|
|
||||||
static void checktype_header()
|
static void checktype_header()
|
||||||
{
|
{
|
||||||
printf("json_object_is_type: %s,%s,%s,%s,%s,%s,%s,%s\n",
|
printf("json_object_is_type: %s,%s,%s,%s,%s,%s,%s\n",
|
||||||
json_type_to_name(json_type_null),
|
json_type_to_name(json_type_null),
|
||||||
json_type_to_name(json_type_boolean),
|
json_type_to_name(json_type_boolean),
|
||||||
json_type_to_name(json_type_double),
|
json_type_to_name(json_type_double),
|
||||||
json_type_to_name(json_type_int),
|
json_type_to_name(json_type_int),
|
||||||
json_type_to_name(json_type_uint),
|
|
||||||
json_type_to_name(json_type_object),
|
json_type_to_name(json_type_object),
|
||||||
json_type_to_name(json_type_array),
|
json_type_to_name(json_type_array),
|
||||||
json_type_to_name(json_type_string));
|
json_type_to_name(json_type_string));
|
||||||
@@ -107,13 +106,12 @@ static void checktype(struct json_object *new_obj, const char *field)
|
|||||||
if (field && !json_object_object_get_ex(new_obj, field, &o))
|
if (field && !json_object_object_get_ex(new_obj, field, &o))
|
||||||
printf("Field %s does not exist\n", field);
|
printf("Field %s does not exist\n", field);
|
||||||
|
|
||||||
printf("new_obj%s%-18s: %d,%d,%d,%d,%d,%d,%d,%d\n",
|
printf("new_obj%s%-18s: %d,%d,%d,%d,%d,%d,%d\n",
|
||||||
field ? "." : " ", field ? field : "",
|
field ? "." : " ", field ? field : "",
|
||||||
json_object_is_type(o, json_type_null),
|
json_object_is_type(o, json_type_null),
|
||||||
json_object_is_type(o, json_type_boolean),
|
json_object_is_type(o, json_type_boolean),
|
||||||
json_object_is_type(o, json_type_double),
|
json_object_is_type(o, json_type_double),
|
||||||
json_object_is_type(o, json_type_int),
|
json_object_is_type(o, json_type_int),
|
||||||
json_object_is_type(o, json_type_uint),
|
|
||||||
json_object_is_type(o, json_type_object),
|
json_object_is_type(o, json_type_object),
|
||||||
json_object_is_type(o, json_type_array),
|
json_object_is_type(o, json_type_array),
|
||||||
json_object_is_type(o, json_type_string));
|
json_object_is_type(o, json_type_string));
|
||||||
|
|||||||
@@ -59,13 +59,13 @@ new_obj.a_null json_object_get_boolean()=0
|
|||||||
new_obj.a_null json_object_get_double()=0.000000
|
new_obj.a_null json_object_get_double()=0.000000
|
||||||
|
|
||||||
================================
|
================================
|
||||||
json_object_is_type: null,boolean,double,int,uint,object,array,string
|
json_object_is_type: null,boolean,double,int,object,array,string
|
||||||
new_obj : 0,0,0,0,0,1,0,0
|
new_obj : 0,0,0,0,1,0,0
|
||||||
new_obj.string_of_digits : 0,0,0,0,0,0,0,1
|
new_obj.string_of_digits : 0,0,0,0,0,0,1
|
||||||
new_obj.regular_number : 0,0,0,1,0,0,0,0
|
new_obj.regular_number : 0,0,0,1,0,0,0
|
||||||
new_obj.decimal_number : 0,0,1,0,0,0,0,0
|
new_obj.decimal_number : 0,0,1,0,0,0,0
|
||||||
new_obj.boolean_true : 0,1,0,0,0,0,0,0
|
new_obj.boolean_true : 0,1,0,0,0,0,0
|
||||||
new_obj.boolean_false : 0,1,0,0,0,0,0,0
|
new_obj.boolean_false : 0,1,0,0,0,0,0
|
||||||
new_obj.int64_number : 0,0,0,1,0,0,0,0
|
new_obj.int64_number : 0,0,0,1,0,0,0
|
||||||
new_obj.negative_number : 0,0,0,1,0,0,0,0
|
new_obj.negative_number : 0,0,0,1,0,0,0
|
||||||
new_obj.a_null : 1,0,0,0,0,0,0,0
|
new_obj.a_null : 1,0,0,0,0,0,0
|
||||||
|
|||||||
Reference in New Issue
Block a user