dart:convert
库中jsonEncode
函数的用法介绍如下。
用法:
String jsonEncode(
Object? object,
{Object? toEncodable(
Object? nonEncodable
)?}
)
将 object
转换为 JSON 字符串。
如果 value 包含不能直接编码为 JSON 字符串的对象(不是数字、布尔值、字符串、null、列表或带有字符串键的映射的值),则使用 toEncodable
函数将其转换为对象必须是可直接编码的。
如果省略toEncodable
,则默认为返回在不可编码对象上调用.toJson()
的结果的函数。
json.encode
的简写。如果局部变量隐藏全局 json 常量,则很有用。
例子:
const data = {'text': 'foo', 'value': 2, 'status': false, 'extra': null};
final String jsonString = jsonEncode(data);
print(jsonString); // {"text":"foo","value":2,"status":false,"extra":null}
将原本不受支持的对象转换为自定义 JSON 格式的示例:
class CustomClass {
final String text;
final int value;
CustomClass({required this.text, required this.value});
CustomClass.fromJson(Map<String, dynamic> json)
: text = json['text'],
value = json['value'];
static Map<String, dynamic> toJson(CustomClass value) =>
{'text': value.text, 'value': value.value};
}
void main() {
final CustomClass cc = CustomClass(text: 'Dart', value: 123);
final jsonText = jsonEncode({'cc': cc},
toEncodable: (Object? value) => value is CustomClass
? CustomClass.toJson(value)
: throw UnsupportedError('Cannot convert to JSON: $value'));
print(jsonText); // {"cc":{"text":"Dart","value":123}}
}
相关用法
- Dart jsonDecode用法及代码示例
- Dart MapMixin.containsKey用法及代码示例
- Dart Iterator用法及代码示例
- Dart AttributeClassSet.intersection用法及代码示例
- Dart num.sign用法及代码示例
- Dart TransformList.last用法及代码示例
- Dart FileList.first用法及代码示例
- Dart CanvasRenderingContext2D.drawImageScaledFromSource用法及代码示例
- Dart FileList.length用法及代码示例
- Dart Iterable.takeWhile用法及代码示例
- Dart LinkedHashMap用法及代码示例
- Dart RegExp.pattern用法及代码示例
- Dart StreamTransformer构造函数用法及代码示例
- Dart JsArray.removeAt用法及代码示例
- Dart ListMixin.expand用法及代码示例
- Dart UriData.parse用法及代码示例
- Dart Point用法及代码示例
- Dart Int32x4List.view用法及代码示例
- Dart Uri.decodeFull用法及代码示例
- Dart Future用法及代码示例
- Dart File用法及代码示例
- Dart ObjectStore.openCursor用法及代码示例
- Dart Process用法及代码示例
- Dart Uri.replace用法及代码示例
- Dart LengthList.first用法及代码示例
注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 jsonEncode function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。