Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 part of dart.convert; | 5 part of dart.convert; |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * Error thrown by JSON serialization if an object cannot be serialized. | 8 * Error thrown by JSON serialization if an object cannot be serialized. |
| 9 * | 9 * |
| 10 * The [unsupportedObject] field holds that object that failed to be serialized. | 10 * The [unsupportedObject] field holds that object that failed to be serialized. |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 75 * | 75 * |
| 76 * The [reviver] function is called during decoding. It is invoked | 76 * The [reviver] function is called during decoding. It is invoked |
| 77 * once for each object or list property that has been parsed. | 77 * once for each object or list property that has been parsed. |
| 78 * The `key` argument is either the | 78 * The `key` argument is either the |
| 79 * integer list index for a list property, the string map key for object | 79 * integer list index for a list property, the string map key for object |
| 80 * properties, or `null` for the final result. | 80 * properties, or `null` for the final result. |
| 81 * | 81 * |
| 82 * If [reviver] is omitted, it defaults to returning the value argument. | 82 * If [reviver] is omitted, it defaults to returning the value argument. |
| 83 * | 83 * |
| 84 * The [toEncodable] function is used during encoding. It is invoked for | 84 * The [toEncodable] function is used during encoding. It is invoked for |
| 85 * values that are not directly encodable to a JSON | 85 * values that are not directly encodable to a JSON1toE |
|
Søren Gjesse
2014/03/14 08:10:15
What is "a JSON1toE string"?
| |
| 86 * string (a value that is not a number, boolean, string, null, list or a map | 86 * string (a value that is not a number, boolean, string, null, list or a map |
| 87 * with string keys). The function must return an object that is directly | 87 * with string keys). The function must return an object that is directly |
| 88 * encodable. | 88 * encodable. The elements of a returned list and values of a returned map |
| 89 * do not need be directly encodable, and if they aren't, `toEncodable` will | |
| 90 * be used on them as well. | |
| 91 * Please notice that it is possible to cause an infinite recursive | |
| 92 * regress in this way, by effectively creating an infinite data structure | |
| 93 * through repeated call to `toEncodable`. | |
| 89 * | 94 * |
| 90 * If [toEncodable] is omitted, it defaults to a function that returns the | 95 * If [toEncodable] is omitted, it defaults to a function that returns the |
| 91 * result of calling `.toJson()` on the unencodable object. | 96 * result of calling `.toJson()` on the unencodable object. |
| 92 */ | 97 */ |
| 93 const JsonCodec({reviver(var key, var value), toEncodable(var object)}) | 98 const JsonCodec({reviver(var key, var value), toEncodable(var object)}) |
| 94 : _reviver = reviver, | 99 : _reviver = reviver, |
| 95 _toEncodable = toEncodable; | 100 _toEncodable = toEncodable; |
| 96 | 101 |
| 97 /** | 102 /** |
| 98 * Creates a `JsonCodec` with the given reviver. | 103 * Creates a `JsonCodec` with the given reviver. |
| (...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 496 first = false; | 501 first = false; |
| 497 }); | 502 }); |
| 498 _sink.write('}'); | 503 _sink.write('}'); |
| 499 _seen.remove(object); | 504 _seen.remove(object); |
| 500 return true; | 505 return true; |
| 501 } else { | 506 } else { |
| 502 return false; | 507 return false; |
| 503 } | 508 } |
| 504 } | 509 } |
| 505 } | 510 } |
| OLD | NEW |