Commit Graph

162 Commits

Author SHA1 Message Date
Xinchen Hui
47c9027772 Bump year 2014-01-03 11:06:16 +08:00
Xinchen Hui
c0d060f5c0 Bump year 2014-01-03 11:04:26 +08:00
kovacs.ferenc
a833f7d460 Merge branch 'PHP-5.6' 2013-11-18 12:39:40 +01:00
Andrea Faulds
91779db95b Fixed case part of bug #64874 ("json_decode handles whitespace and case-sensitivity incorrectly") 2013-11-11 22:54:16 +00:00
Adam Harvey
91cb087727 Merge branch 'PHP-5.6'
* PHP-5.6:
  Update NEWS and remove the unnecessary UPGRADING note.
  UPGRADING and NEWS
  Better test: Check combined leading/trailing
  Fixed whitespace part of bug #64874 ("json_decode handles whitespace and case-sensitivity incorrectly")
2013-11-10 16:16:38 -05:00
Adam Harvey
304bff90f4 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Update NEWS and remove the unnecessary UPGRADING note.
  UPGRADING and NEWS
  Better test: Check combined leading/trailing
  Fixed whitespace part of bug #64874 ("json_decode handles whitespace and case-sensitivity incorrectly")
2013-11-10 16:11:28 -05:00
Adam Harvey
90d4ae4da8 Make all code paths in json_determine_array_type() return constants.
This is a purely cosmetic change, but the current behaviour of returning
PHP_JSON_OUTPUT_ARRAY and 1 looks weird.
2013-11-09 12:15:37 -05:00
Kevin Israel
82a4f1a1a2 Fix #66021 (Blank line inside empty array/object)
Changed json_encode() so that when the JSON_PRETTY_PRINT option is specified,
the pair of linefeeds immediately after an opening bracket and before the
corresponding closing bracket is omitted when the array or object contains no
elements or accessible properties (and hence would have a blank line between
the brackets).
2013-11-02 15:59:11 -04:00
Andrea Faulds
2524428504 Fixed whitespace part of bug #64874 ("json_decode handles whitespace and case-sensitivity incorrectly") 2013-09-17 19:09:52 +00:00
Veres Lajos
4749457a49 HASH_KEY_NON_EXISTANT fix 2013-07-21 20:09:53 -07:00
Xinchen Hui
a666285bc2 Happy New Year 2013-01-01 16:37:09 +08:00
Xinchen Hui
0a7395e009 Happy New Year 2013-01-01 16:28:54 +08:00
Adam Harvey
8bb106d20c Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Alter php_json_decode_ex() to respect JSON_BIGINT_AS_STRING for bare numbers.
2012-12-11 19:53:02 +08:00
Adam Harvey
2d1694d4eb Alter php_json_decode_ex() to respect JSON_BIGINT_AS_STRING for bare numbers.
Fixes bug #63737 (json_decode does not properly decode with options parameter).
2012-12-11 19:51:30 +08:00
Remi Collet
495ff0964d Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Related bug #63588 fix length computation + optimize for speed
2012-11-26 13:05:37 +01:00
Remi Collet
7751a68824 Related bug #63588 fix length computation + optimize for speed
Following comment from Yoram "The patch looks fine, except of testing
for true value of utf16 in each iteration."
Also fix the length computation during check phase.
2012-11-26 12:59:08 +01:00
Remi Collet
f4a8612561 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fixed bug #63588 Duplicate implementation of php_next_utf8_char
2012-11-25 08:21:10 +01:00
Remi Collet
289bb339c9 Fixed bug #63588 Duplicate implementation of php_next_utf8_char
Json use an utf8 parser from a third party library, switch to
our implementation of php_next_utf8_char.
This also helps on solving #63520. All the unit tests succeed.
Our implementation also seems a little faster.

json.dsp need to be regenerated.
2012-11-25 08:14:23 +01:00
Xinchen Hui
f8559194db Fix test failed due to new feature introduced in 45d596ea 2012-07-29 23:35:06 +08:00
Florian Anderiasch
45d596ea1e Add optional depth parameter to json_encode #62369 2012-07-24 13:15:16 +02:00
Nikita Popov
b7903f9778 Revert JSON merges to 5.4
This reverts the following merge commits (-m 1):

405ebfcd18
d372b33c9b
36fa17a5fa
2012-07-01 16:38:26 +02:00
Stanislav Malyshev
b741d3315b fix bug #61359: json_encode() calls too many reallocs 2012-06-30 19:14:30 -07:00
Nikita Popov
405ebfcd18 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Add json_last_error_msg() function
2012-06-28 20:18:19 +02:00
Nikita Popov
974324676b Add json_last_error_msg() function
This replaces json_last_error(true) and is consistent with other custom
error handling functions.
2012-06-28 20:11:27 +02:00
Nikita Popov
d372b33c9b Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Improve JSON error handling

Conflicts:
	ext/json/tests/bug54058.phpt
	ext/json/tests/bug61537.phpt
2012-06-27 12:28:55 +02:00
Nikita Popov
4662151ea7 Improve JSON error handling
json_encode() no longer throws warnings. Instead only the error code for
json_last_error() is set.

As it is hard to debug the error from just an error code an optional
$as_string parameter was added to json_last_error(), which returns an
error message instead of an error code.
2012-06-27 12:21:48 +02:00
Nikita Popov
36fa17a5fa Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Improve json_encode error handling
  - BFN

Conflicts:
	ext/json/json.c
2012-06-23 21:14:45 +02:00
Nikita Popov
84fe2cc890 Improve json_encode error handling
json_encode() now returns bool(false) for all possible errors, throws the
respective warning and also sets the respective json_last_error() error
code. Three new error codes have been added:

  * JSON_ERROR_RECURSION
  * JSON_ERROR_INF_OR_NAN
  * JSON_ERROR_UNSUPPORTED_TYPE

To get a partial JSON output instead of bool(false) the option
JSON_PARTIAL_OUTPUT_ON_ERROR can be specified. In this case the invalid
segments will be replaced either by null (for recursion, unsupported type
and invalid JSON) or 0 (for Inf and NaN).

The warning for invalid UTF-8 stays intact and is thrown also with
display_errors = On. If this behavior is undesired this can be remedied
later.
2012-06-23 20:51:52 +02:00
Felipe Pena
92bc49b2b0 - Fixed bug #61978 (Object recursion not detected for classes that implement JsonSerializable) 2012-05-08 21:05:51 -03:00
Stanislav Malyshev
7bbd5521d2 Revert "Fix bug #61537 (json_encode() incorrectly truncates/discards information) and"
This reverts commit cb2a1c71c9.
The fix is not correct, not fixed after discussion on github.
Please fix the issues and reapply the patch
2012-05-01 23:54:10 -07:00
Adam Harvey
cb2a1c71c9 Fix bug #61537 (json_encode() incorrectly truncates/discards information) and
remove a test case that's now mooted by this fix.
2012-04-11 08:29:39 +08:00
Adam Harvey
3f3ad30c50 Fix bug #61537 (json_encode() incorrectly truncates/discards information) and
remove a test case that's now mooted by this fix.
2012-04-11 08:24:38 +08:00
David Soria Parra
71d894cd42 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Adding Braces in json.c to conform with coding standards
2012-03-20 17:29:20 +01:00
Matt Nowack
76ef76d2f8 Adding Braces in json.c to conform with coding standards 2012-03-20 17:29:04 +01:00
Felipe Pena
e4ca0ed09f - Year++ 2012-01-01 13:15:04 +00:00
Felipe Pena
4e19825281 - Year++ 2012-01-01 13:15:04 +00:00
Ilia Alshanetsky
199b52c1d4 Fixed bug #55543 (json_encode() with JSON_NUMERIC_CHECK fails on objects with numeric string properties) 2011-10-17 23:51:25 +00:00
Ilia Alshanetsky
d4ae4e79db Fixed bug #55543 (json_encode() with JSON_NUMERIC_CHECK fails on objects with numeric string properties) 2011-10-17 23:51:25 +00:00
Gwynne Raskind
06292974b1 Add unescaped Unicode encoding to json_encode(). Closes bug #53946. Patch by Irker and Gwynne. 2011-08-29 14:56:19 +00:00
Felipe Pena
783b05326a - Added missing PHP_FE_END/ZEND_FE_END 2011-08-06 01:22:27 +00:00
Felipe Pena
23e438594d - Make usage of new PHP_FE_END macro 2011-07-25 11:42:53 +00:00
Felipe Pena
4b30846b50 - Make usage of new PHP_FE_END macro 2011-07-25 11:35:02 +00:00
Ilia Alshanetsky
f4f2aa7583 Fixed bug #54484 (Empty string in json_decode doesn't reset json_last_error()). 2011-06-01 09:44:38 +00:00
Ilia Alshanetsky
a7dfb31557 Fixed bug #54484 (Empty string in json_decode doesn't reset json_last_error()). 2011-06-01 09:44:38 +00:00
Peter Cowburn
e77bd31f3f fix method name in JsonSerializable exception message 2011-04-30 12:57:23 +00:00
Scott MacVicar
ecb9d8019c Fix Bug #54058, invalid utf-8 doesn't set json_encode() in all cases 2011-02-21 08:09:02 +00:00
Scott MacVicar
3242016f28 Fix Bug #54058, invalid utf-8 doesn't set json_encode() in all cases 2011-02-21 08:09:02 +00:00
Felipe Pena
927bf09c29 - Year++ 2011-01-01 02:19:59 +00:00
Felipe Pena
0203cc3d44 - Year++ 2011-01-01 02:17:06 +00:00
Adam Harvey
cb9c8233fc Implement FR #44331 (Formatting option for json_encode). Bikeshedding about the
exact form of the JSON pretty printing and brace handling will only be accepted
in the form of patches. ;)
2010-09-16 16:21:15 +00:00
Adam Harvey
d8b8d22a0d Rebalance the folds in json.c. 2010-09-16 14:15:19 +00:00
Adam Harvey
726fe638bb Implemented FR #49366 (Make slash escaping optional in json_encode()). 2010-09-16 13:53:27 +00:00
Adam Harvey
3c93eab5a3 Fix English in the error message emitted when json_decode() is called with
depth <= 0.
2010-09-14 03:46:28 +00:00
Adam Harvey
1f06a6a4e8 Fix English in the error message emitted when json_decode() is called with
depth <= 0.
2010-09-14 03:46:28 +00:00
Scott MacVicar
e1ce0a64ea Fix bug #52262 - Invalid UTF-8 documents don't set an error code when they fail to decode. 2010-07-06 17:01:30 +00:00
Scott MacVicar
bc74861cf8 Fix bug #52262 - Invalid UTF-8 documents don't set an error code when they fail to decode. 2010-07-06 17:01:30 +00:00
Sara Golemon
6eb4218433 Add JSON_BIGINT_AS_STRING for json_decode() to parse large numbers
as strings rather than casting to double and loosing precision.
2010-05-21 22:59:58 +00:00
Ilia Alshanetsky
ea3a6539dc Added support for JSON_NUMERIC_CHECK option in json_encode() that converts
numeric strings to integers.
2010-05-20 19:37:52 +00:00
Ilia Alshanetsky
cf174c1366 Added support for JSON_NUMERIC_CHECK option in json_encode() that converts
numeric strings to integers.
2010-05-20 19:37:52 +00:00
Sara Golemon
1fd85e29de Rename JSON_Serializable to JsonSerializable per ML discussion 2010-05-12 16:42:48 +00:00
Kalle Sommer Nielsen
a31a2083af Well we do need zend_throw_exception_ex ;-) 2010-05-06 13:44:35 +00:00
Sara Golemon
1381b14eaa Add JSON_Serializable interface
Objects implementing JSON_Serializable will have
their ->jsonSerialize() method called

Similar to serialize() and __sleep()
2010-05-05 22:48:14 +00:00
Felipe Pena
45c090f3e7 - Fixed bug #51590 (JSON_ERROR_UTF8 is undefined) 2010-04-18 18:07:27 +00:00
Felipe Pena
6f03cbf664 - Fixed bug #51590 (JSON_ERROR_UTF8 is undefined) 2010-04-18 18:07:27 +00:00
Johannes Schlüter
26b08f9857 Remove main/php3_compat.h, for that a few references to function_entry have
to be replaced by `zend_function_entry`.
2010-03-30 23:03:02 +00:00
Sebastian Bergmann
9ba1e81665 sed -i "s#1997-2009#1997-2010#g" **/*.c **/*.h **/*.php 2010-01-03 09:23:27 +00:00
Scott MacVicar
87dbefa03b MFH: Add error constant when json_encode detects an invalid UTF-8 sequence. 2009-07-27 03:43:38 +00:00
Stanislav Malyshev
2361b4ea2a fix json shared build on Windows 2009-06-30 17:52:21 +00:00
Felipe Pena
caf8d811ef - MFH: Fixed memleak when depth arg is less than zero 2009-06-24 17:39:52 +00:00
Jani Taskinen
7012d0967c MFH: no dots in errors 2009-05-31 13:51:08 +00:00
Andrei Zmievski
efc0927f4f Expose encode/decode API. 2009-05-31 01:44:07 +00:00
Kalle Sommer Nielsen
105272bdec MFH: Fix arginfo 2009-05-15 09:10:55 +00:00
Scott MacVicar
d2a7785878 MFH Allow a custom recursion depth to be specified for json_decode() 2009-05-14 22:02:08 +00:00
Scott MacVicar
c2b15e947d MFH Replace magic values with a define for json encoding, makes reading it a bit easier 2009-03-17 23:26:02 +00:00
Scott MacVicar
8d2a5cabec MFH Add PHP_JSON_FORCE_OBJECT for forcing an object output of an array 2009-03-17 23:15:40 +00:00
Sebastian Bergmann
08659c2dcd MFH: Bump copyright year, 3 of 3. 2008-12-31 11:15:49 +00:00
Scott MacVicar
7fe245af85 MFH Make sure we clear out the error when the scalar version decoding works. 2008-12-24 18:09:09 +00:00
Scott MacVicar
fdf2d1e46f MFH Add json_last_error() for getting a bit of information about what failed during a decode, also fixes a segfault when we have [1}
[DOC]
2008-12-19 02:00:57 +00:00
Scott MacVicar
8ef7fe1d99 Update the JSON parser with that on json.org, biggest change here is code readability. Less magic numbers in the state table.
Add missing reflection information to json_encode()
Fixes bug #45791 with 0e0 not being supported as a value
Error values are stored when encountered during parsing
2008-12-17 14:40:06 +00:00
Scott MacVicar
ed5f04710b MFH Fix bug #45989 - json_decode() doesn't return NULL on certain invalid strings 2008-12-12 23:19:47 +00:00
Felipe Pena
fc2fb50d09 - MFH: Added 'static' into ZEND_BEGIN_ARG_INFO_EX macro 2008-11-17 11:28:01 +00:00
Felipe Pena
7a37fa2d6b - Revert ZEND_BEGIN_ARG_INFO change 2008-11-02 21:19:39 +00:00
Felipe Pena
df10005563 - MFH: Added 'static' into ZEND_BEGIN_ARG_INFO_EX macro 2008-10-24 14:35:40 +00:00
Felipe Pena
604c7f6ad2 - MFH: Fixed bug #46215 (json_encode mutates its parameter and has some class-specific state) 2008-10-02 03:36:20 +00:00
Jani Taskinen
4e2ed54d15 ws + cs 2008-07-22 15:30:03 +00:00
Felipe Pena
cb0d08699d - Added arginfo 2008-06-27 19:16:17 +00:00
Dmitry Stogov
1a41611372 ZTS fix 2008-01-30 08:10:17 +00:00
Stanislav Malyshev
b4443f35ff fix #43941: invalid utf-8 not accepted 2008-01-30 03:17:57 +00:00
Sebastian Bergmann
d1dded8751 MFH: Bump copyright year, 2 of 2. 2007-12-31 07:17:19 +00:00
Sara Golemon
cce03434ef MFH (json.c r-1.32) Add support for encoding options 2007-12-17 07:48:27 +00:00
Ilia Alshanetsky
36cf6a2b05 Fixed bug #42785 (json_encode() formats doubles according to locale rather
then following standard syntax).
2007-10-01 15:22:41 +00:00
Dmitry Stogov
6c810b0d4c Improved memory usage by movig constants to read only memory. (Dmitry, Pierre) 2007-09-27 18:00:48 +00:00
Hannes Magnusson
e3b8cf0f66 MFH: Fixed bug#42090 (json_decode causes segmentation fault) 2007-07-24 22:57:13 +00:00
Antony Dovgal
17ee976404 fix ws/folding 2007-07-23 12:24:52 +00:00
Ilia Alshanetsky
9f28e21bb1 Fixed bug #41673 (json_encode breaks large numbers in arrays). 2007-06-13 17:07:58 +00:00
Ilia Alshanetsky
045b283a7d Fixed bug #41567 (json_encode() double conversion is inconsistent with PHP). 2007-06-04 23:51:32 +00:00
Hannes Magnusson
de4408c9af MFH: protos (patch by jeffg at activestate dot com) 2007-05-25 13:24:50 +00:00
Andrei Zmievski
b62d120580 Fix processing of control characters; they should be escaped as \u
sequences.
2007-04-13 21:34:12 +00:00
Ilia Alshanetsky
a133297c86 Fixed bug #41034 (json_encode() ignores null byte started keys in arrays) 2007-04-12 19:40:38 +00:00
Ilia Alshanetsky
5e274ea47d Fixed bug #40503 (json_encode() value corruption on 32bit systems with
overflown values).
2007-02-18 16:54:59 +00:00