diff options
author | Sara Golemon <pollita@php.net> | 2010-05-21 22:59:58 +0000 |
---|---|---|
committer | Sara Golemon <pollita@php.net> | 2010-05-21 22:59:58 +0000 |
commit | 6eb4218433e5b2af2974648b31ca434b1aa4e314 (patch) | |
tree | 7107a79d39863c12df805228fc20dd27329c306c /ext/json/php_json.h | |
parent | a25482105ec71b40f14d1f6bf1ce0ee72622047b (diff) | |
download | php-git-6eb4218433e5b2af2974648b31ca434b1aa4e314.tar.gz |
Add JSON_BIGINT_AS_STRING for json_decode() to parse large numbers
as strings rather than casting to double and loosing precision.
Diffstat (limited to 'ext/json/php_json.h')
-rw-r--r-- | ext/json/php_json.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/ext/json/php_json.h b/ext/json/php_json.h index 5ff8d1be03..7b67c10d2f 100644 --- a/ext/json/php_json.h +++ b/ext/json/php_json.h @@ -48,9 +48,11 @@ ZEND_END_MODULE_GLOBALS(json) #endif PHP_JSON_API void php_json_encode(smart_str *buf, zval *val, int options TSRMLS_DC); -PHP_JSON_API void php_json_decode(zval *return_value, char *str, int str_len, zend_bool assoc, long depth TSRMLS_DC); +PHP_JSON_API void php_json_decode_ex(zval *return_value, char *str, int str_len, int options, long depth TSRMLS_DC); extern zend_class_entry *php_json_serializable_ce; + +/* json_encode() options */ #define PHP_JSON_HEX_TAG (1<<0) #define PHP_JSON_HEX_AMP (1<<1) #define PHP_JSON_HEX_APOS (1<<2) @@ -58,8 +60,19 @@ extern zend_class_entry *php_json_serializable_ce; #define PHP_JSON_FORCE_OBJECT (1<<4) #define PHP_JSON_NUMERIC_CHECK (1<<5) -#define PHP_JSON_OUTPUT_ARRAY 0 -#define PHP_JSON_OUTPUT_OBJECT 1 +/* Internal flags */ +#define PHP_JSON_OUTPUT_ARRAY 0 +#define PHP_JSON_OUTPUT_OBJECT 1 + +/* json_decode() options */ +#define PHP_JSON_OBJECT_AS_ARRAY (1<<0) +#define PHP_JSON_BIGINT_AS_STRING (1<<1) + +static inline php_json_decode(zval *return_value, char *str, int str_len, zend_bool assoc, long depth TSRMLS_DC) +{ + php_json_decode_ex(return_value, str, str_len, assoc ? PHP_JSON_OBJECT_AS_ARRAY : 0, depth TSRMLS_CC); +} + #endif /* PHP_JSON_H */ |