| // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| /// @assertion String convert(Object o) |
| /// Converts the given object o to its JSON representation. |
| /// Directly serializable values are num, String, bool, and Null, as well as some |
| /// List and Map values. For List, the elements must all be serializable. For |
| /// Map, the keys must be String and the values must be serializable. If a value |
| /// is any other type is attempted serialized, the conversion function provided |
| /// in the constructor is invoked with the object as argument and the result, |
| /// which must be a directly serializable value, is serialized instead of the |
| /// original value. |
| /// |
| /// If the conversion throws, or returns a value that is not directly |
| /// serializable, a JsonUnsupportedObjectError exception is thrown. |
| /// If the call throws, the error is caught and stored in the |
| /// JsonUnsupportedObjectError's cause field. |
| /// |
| /// If a List or Map contains a reference to itself, directly or through other |
| /// lists or maps, it cannot be serialized and a JsonCyclicError is thrown. |
| /// |
| /// Json Objects should not change during serialization. |
| /// If an object is serialized more than once, stringify is allowed to cache the |
| /// JSON text for it. I.e., if an object changes after it is first serialized, |
| /// the new values may or may not be reflected in the result. |
| /// @description Checks that num, String, bool, Null, List, and Map values are |
| /// serialized correctly. |
| /// @author kaigorodov |
| |
| import "dart:convert"; |
| import "../../../Utils/expect.dart"; |
| import "../JsonDecoder/table1.lib.dart"; |
| |
| main() { |
| for (List<Object?> pair in table) { |
| JsonEncoder enc = new JsonEncoder(); |
| String res = enc.convert(pair[0]); |
| Expect.equals(pair[1], res); |
| } |
| } |