aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/json
Commit message (Collapse)AuthorAgeFilesLines
* Replace multi_json with jsonErik Michaels-Ober2013-05-111-21/+4
|
* Merge pull request #10534 from cmaruz/masterRafael Mendonça França2013-05-101-1/+4
|\ | | | | | | | | | | | | Escape of U+2028 and U+2029 in the JSON Encoder Conflicts: activesupport/lib/active_support/json/encoding.rb
| * Added escaping of U+2028 and U+2029 inside the json encoder.Mario Caropreso2013-05-091-3/+6
| | | | | | | | | | | | | | | | | | | | | | U+2028 and U+2029 are allowed inside strings in JSON (as all literal Unicode characters) but JavaScript defines them as newline seperators. Because no literal newlines are allowed in a string, this causes a ParseError in the browser. We work around this issue by replacing them with the escaped version. The resulting JSON is still valid and can be parsed in the browser. This commit has been coauthored with Viktor Kelemen @yikulju
* | Fix syntax error on Ruby 2.0Rafael Mendonça França2013-05-101-2/+4
| | | | | | | | | | Since Ruby 2.0 is UTF-8 by default we need to explictly say that the encoding of this file is US-ASCII
* | Escape multibyte line terminators in JSON encodingzackham2013-04-021-2/+4
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, json/encoding respects the JSON spec (as it should) which disallows \n and \r inside strings, escaping them as expected. Unfortunately, ECMA-262 (Javascript) disallows not only \n and \r in strings, but "Line Terminators" which includes U+2028 and U+2029. See here: http://bclary.com/2004/11/07/#a-7.3 This pull request adds U+2028 and U+2029 to be escaped. # Why?  It's very common to see something like this in a Rails template: <script type="text/javascript">  var posts = <%= @posts.to_json %>; </script> If U+2028 or U+2029 are part of any attributes output in the to_json call, you will end up with an exception. In Chrome: Uncaught SyntaxError: Unexpected token ILLEGAL  # Why not? This is JSON encoding, and the JSON spec is specific about how to  encode strings. U+2028 and U+2029 don't get special treatment. Just trying to start a discussion... what do you do in your apps to deal with this? Is there a convention I'm missing?
* Revert "Simplify code in AS json encoder"Guillermo Iguaran2013-02-251-8/+15
| | | | | | This reverts commit 046e27a7338f2961c10e9d133e0e2229b51c2ba8. Check https://github.com/rails/rails/pull/8815#issuecomment-14026122 for details.
* Merge pull request #8815 from bogdan/simplified-to-json-argsSteve Klabnik2013-02-241-15/+8
|\ | | | | AS JSON encoder: remove monkey patch of Array
| * Simplify code in AS json encoderBogdan Gusiev2013-01-061-15/+8
| |
* | prefer american spelling of 'behavior'Gosha Arinich2013-01-071-1/+1
|/
* Remove unicode character encoding from ActiveSupport::JSON.encodeBrett Carter2012-12-141-7/+1
| | | | | | | | | | The encoding scheme (e.g. ☠ -> "\u2620") was broken for characters not in the Basic Multilingual Plane. It is possible to escape them for json using the weird encoding scheme of a twelve-character sequence representing the UTF-16 surrogate pair (e.g. '𠜎' -> "\u270e\u263a") but this wasn't properly handled in the escaping code. Since raw UTF-8 is allowed in json, it was decided to simply pass through the raw bytes rather than attempt to escape them.
* `#as_json` isolates options when encoding a hash. Closes #8182Yves Senn2012-11-121-1/+1
| | | | | | Setting options in a custom `#as_json` method had side effects. Modifications of the `options` hash leaked outside and influenced the conversion of other objects contained in the hash.
* Make caller attribute in deprecation methods optionalAlexey Gaziev2012-10-301-1/+1
|
* Provide a call stack for deprecation warnings where needed.Nikita Afanasenko2012-10-291-2/+3
| | | | It's sometimes hard to quickly find where deprecated call was performed, especially in case of migrating between Rails versions. So this is an attempt to improve the call stack part of the warning message by providing caller explicitly.
* update AS/json docs [ci skip]Francesco Rodriguez2012-09-142-12/+20
|
* Add back missing requireRafael Mendonça França2012-08-071-0/+1
|
* Fix the deprecation horizon. [ci skip]Rafael Mendonça França2012-08-071-1/+1
|
* Deprecate ActiveSupport::JSON::VariableErich Menge2012-08-071-0/+17
| | | | | | | | | | Reason: ActiveSupport::JSON::Variable is not used anymore internally. It was deprecated in 3-2-stable but we reverted all the deprecation for point releases. See #6536 and #6546. Conflicts: activesupport/lib/active_support/json/variable.rb
* fixing :nodoc:s in AS::JSON::EncodingFrancesco Rodriguez2012-07-211-15/+48
|
* Document ActiveSupport::JSON.parse_error [ci skip]Mark Rushakoff2012-06-051-0/+8
|
* Merge branch 'master' of github.com:lifo/docrailsVijay Dev2012-06-021-1/+1
|\
| * Fix typo [ci skip]Erich Menge2012-05-301-1/+1
| |
* | Merge pull request #6554 from erichmenge/remove-json-variablePiotr Sarnacki2012-05-302-10/+0
|\ \ | |/ |/| Remove deprecated ActiveSupport::JSON::Variable.
| * Remove deprecated ActiveSupport::JSON::Variable.Erich Menge2012-05-302-10/+0
| |
* | Merge branch 'master' of github.com:lifo/docrailsVijay Dev2012-05-302-1/+9
|\ \ | |/ |/|
| * add ActiveSupport::JSON.decode documentation [ci skip]Francesco Rodriguez2012-05-281-0/+5
| |
| * add example to ActiveSupport::JSON.encode [ci skip]Francesco Rodriguez2012-05-281-1/+4
| |
* | True, False, and Nil should be represented in as_json as themselves.Erich Menge2012-05-291-9/+9
|/
* Since escape_html_entities_in_json was moved to 3-2-stable, make it true in ↵José Valim2012-05-141-1/+1
| | | | AS, closes #6287
* BigDecimal string wrapping in JSON serialization can now be opted-out, fixes ↵David FRANCOIS2012-05-021-1/+14
| | | | #6033
* JSON: encode BigDecimal NaN/Infinity as null.Sebi Burkhard2012-05-011-1/+3
|
* Merge pull request #2532 from ↵Piotr Sarnacki2012-04-301-0/+4
|\ | | | | | | | | hasclass/as_json__encode_infinite_and_nan_floats_as_null JSON: Encode infinite or NaN floats as `null` to generate valid JSON.
| * JSON: Encode infinite or NaN floats as null to generate valid JSON.Sebi Burkhard2011-08-151-0/+4
| |
* | fixed broken build after multi_json upgradeArun Agrawal2012-04-161-3/+3
| | | | | | Multi_json also upgraded.
* | Replaced OrderedHash usage with Ruby 1.9 HashUddhava2012-02-091-3/+1
| |
* | fixes in api docsVijay Dev2012-01-131-2/+2
| |
* | Remove Array.wrap calls in ActiveSupportRafael Mendonça França2012-01-061-3/+2
| |
* | use #to_s to convert Range to jsonSergey Nartimov2012-01-011-0/+4
| |
* | remove checks for encodings availabilitySergey Nartimov2011-12-251-5/+3
| |
* | Revert "Implement ArraySerializer and move old serialization API to a new ↵José Valim2011-11-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | namespace." This reverts commit 8896b4fdc8a543157cdf4dfc378607ebf6c10ab0. Conflicts: activemodel/lib/active_model.rb activemodel/lib/active_model/serializable.rb activemodel/lib/active_model/serializer.rb activemodel/test/cases/serializer_test.rb
* | Implement ArraySerializer and move old serialization API to a new namespace.José Valim2011-11-231-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | The following constants were renamed: ActiveModel::Serialization => ActiveModel::Serializable ActiveModel::Serializers::JSON => ActiveModel::Serializable::JSON ActiveModel::Serializers::Xml => ActiveModel::Serializable::XML The main motivation for such a change is that `ActiveModel::Serializers::JSON` was not actually a serializer, but a module that when included allows the target to be serializable to JSON. With such changes, we were able to clean up the namespace to add true serializers as the ArraySerializer.
* | Set the default options value for as_json in the encoder object.José Valim2011-09-301-2/+2
|/
* Removed deprecated methods and related tests from ActiveSupportJosh Kalderimis2011-05-251-3/+0
|
* Use set data structure to speed up circular reference checks on large/deeply ↵Andy Lindeman2011-05-231-4/+4
| | | | nested objects
* add missing require for ordered_hash dependencyCorin Langosch2011-05-111-0/+1
|
* Merge pull request #248 from bigfix/enumerable_as_jsonJosé Valim2011-05-071-1/+3
|\ | | | | Enumerable should pass encoding options to children in #as_json/#to_json
| * Enumerable should pass encoding options to children in #as_json/#to_json.John Firebaugh2011-04-011-1/+3
| |
* | AS Json parse_error makes a return for backwards compatibility, although it ↵Josh Kalderimis2011-04-191-0/+4
| | | | | | | | will return MultiJson::DecodeError
* | removed AS backends and instead rely on MultiJson for json decodingJosh Kalderimis2011-04-184-227/+33
|/
* parse dates to yaml in json arraysDiego Carrion2011-03-221-2/+2
| | | | Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
* test json decoding with time parsing disabled with all backends and respect ↵Diego Carrion2011-03-221-3/+5
| | | | | | ActiveSupport.parse_json_times when converting to yaml Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>